|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2005
Messaggi: 86
|
[C++]Tutorial Socket
Ciao a tutti.
Volevo imparare qualcosa sui socket e sul networking.Per iniziare mi interessava capire come funzionano i sockets e come poter "dialogare" con un server.Creare insomma una specie di programma simile a telnet,ma molto + semplice. Qualcuno ha una buona guida a riguardo da consigliarmi? |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Windows o Linux?
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
APPUNTO!!!
come è possibile che su Windows (XP) non ci sia il flag MSG_WAITALL da passare alla funzione recv ??? ![]() come fai a dirgli di aspettare tutto il msg ? volevo aprire un 3d ma sfrutto questo se non dispiace
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Perché è br0ken come design.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#5 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
2) non lo usare: un flusso di dati TCP/IP è concepito come un flusso, appunto, non come una serie di messaggi di cui puoi attendere la "fine"; non c'è la fine, è tutto attaccato. 3) non usarlo perché MSDN mi dice che il transport provider non è obbligato a supportarlo ![]() |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
![]() comunque non capisco il problema: io l'ho usato nel lontano 2001 per la Edison Tel ed andava alla grande (Unix, of course). Leggevo i primi 2 bytes per la lunghezza del msg con MSG_WAITALL poi leggevo i prossimi lunghezza bytes dalla rete per il resto del messaggio sempre con MSG_WAITALL. Andava alla grande
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
- Non c'è garanzia che il waitall sia rispettato in caso di segnali o disconnessioni. Leggi la manpage. Devi quindi scrivere il codice di recupero se vuoi un programma affidabile, che vanifica l'utilità della waitall. - Non c'è controllo sui timeout (porte aperte ai DoS) - Non aggiunge alcuna funzionalità in più; demanda semplicemente al kernel un lavoro che puoi fare da codice (più efficacemente inoltre)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 Ultima modifica di ilsensine : 05-02-2008 alle 13:55. |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
Vabbè, grazie.
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Aug 2005
Messaggi: 86
|
Scusate per la dimenticanza.Mi serve per Windows.Per codare uso Dev c++.
Grazie. |
![]() |
![]() |
![]() |
#10 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
in tal caso trovi tutto qui: http://msdn2.microsoft.com/en-us/lib...73(VS.85).aspx
Quote:
|
|
![]() |
![]() |
![]() |
#11 | |
Member
Iscritto dal: Aug 2005
Messaggi: 86
|
Quote:
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:19.