Le socket (o i socket come dice qualcuno) nascono su BSD e poi sono state trapiantate su tutte le versioni Unix, quindi (nel senso di poi...) su Linux.
Conoscere le basi del funzionamento delle BSD socket sicuramente aiuta anche nell'uso di Winsock. Ci sono alcune differenze ma per le prime sperimentazioni le differenze non sono abissali e comunque i concetti base sono quelli. Esempio che risalta subito su win è l'uso iniziale di WSAStartup e finale di WSACleanup che su *nix non esistono assolutamente... ma questo non è un problema, basta saperlo.
Altra differenza è che su *nix c'è omogeneità tra i socket e i file descriptor. Su windows no! questo ha delle importanti implicazioni nell'uso della redirezione. Ma questo fa già parte di un argomanto più "avanzato" e non ti sto ad annoiare.
Ti dico per esperienza che a livello base (e qui parlo di inviare e ricevere semplici messaggi come può essere una interrogazione client-server) non ci sono sostanziali differenze.
Per quanto concerne la conoscenza del C, mi associa alle considerazioni di maiosyet_2. Esistono delle strutture dati abbastanza complicate nell'ambito delle socket per uno che non ha dimestichezza col linguaggio. Mi riferisco in particolare a sockaddr /sockaddr_in e hostent usate nell'inizializzazione degli endpoint (ip/porta etc) e nella risoluzione dei nomi. Queste contengono strutture nidificate e accedervi a volte è un problema anche per chi conosce il C ma non ha freschi concetti quali puntatori e roba simile.
Tu puoi benissimo impararti le linee di codice a memoria o fare copia/incolla e modificare quello che ti serve ma se ci devi mettere del tuo per creare una cosa un po' "diversa" rischi di non riuscirci se non hai capito bene i concetti. Per cominiciare comunque puoi fare copia/incolla...![]()
Documentazione: mi associo nuovamente a maiosyet_2. Roba su BSD socket ne trovi ovunque. Cercando bene la trovi comunque anche per Win. I link sotto possono esserti utili (non sono tutti allo stesso livello come argomenti affrontati:
http://burks.bton.ac.uk/burks/pcinfo...ut/winsock.htm
http://tangentsoft.net/wskfaq/
Riferimenti all'interfaccia:
http://msdn.microsoft.com/library/de...art_page_2.asp
http://www.jimprice.com/winsock/winsock2api-withtoc.PDF
ftp://ftp.microsoft.com/bussys/winso...k2/WSAPI22.DOC