Jump to content

Problema multiplayer


Guest Running Turtle

Recommended Posts

Guest 2fast4u

Nella v1.0.1 ho provato quindi a distruggere il primo socket.. nella speranza (sembra vana :unhappy: ) che il ruoter fosse in grado di ricreare questo benedetto contatto..

Ho provato a mandarti un PM ma non sono ailitato.

Volevo solo farti sapere che in una mia applicazione avevo avuto lo stesso problema, chiudevo un socket e poi per alcuni minuti non mi era piu' possibile riaprilo sulla stessa porta. Indagando meglio ho scoperto che windows ha una cache dei socket aperti e, credo per ottimizzare le connessioni, quando chiudi un socket o lo "distruggi" la porta associata a quel socket non viene liberata immediatamente ma solo quando windows riterra' di farlo.

Ovviamente questo tipo di gestione dei socket non si spiega ed e' presente solo su windows, sui sistemi unix e' tutto gestito in real time.

Se riesco rintraccio l'articolo da cui ho appreso questo malfunzionamento.

forse non e' questo il tulo caso ma........my 2 cents.

Link to comment
Share on other sites

Nella v1.0.1 ho provato quindi a distruggere il primo socket.. nella speranza (sembra vana :unhappy: ) che il ruoter fosse in grado di ricreare questo benedetto contatto..

Ho provato a mandarti un PM ma non sono ailitato.

Volevo solo farti sapere che in una mia applicazione avevo avuto lo stesso problema, chiudevo un socket e poi per alcuni minuti non mi era piu' possibile riaprilo sulla stessa porta. Indagando meglio ho scoperto che windows ha una cache dei socket aperti e, credo per ottimizzare le connessioni, quando chiudi un socket o lo "distruggi" la porta associata a quel socket non viene liberata immediatamente ma solo quando windows riterra' di farlo.

Ovviamente questo tipo di gestione dei socket non si spiega ed e' presente solo su windows, sui sistemi unix e' tutto gestito in real time.

Se riesco rintraccio l'articolo da cui ho appreso questo malfunzionamento.

forse non e' questo il tulo caso ma........my 2 cents.

Quindi, in teoria, se lanciassi l'applicazione con 2 socket aperti dall'inizio il problema non si dovrebbe porre.

Link to comment
Share on other sites

Guest 2fast4u

Quindi, in teoria, se lanciassi l'applicazione con 2 socket aperti dall'inizio il problema non si dovrebbe porre.

Credo di si.

Link to comment
Share on other sites

Guest Vange

Ovviamente questo tipo di gestione dei socket non si spiega ed e' presente solo su windows, sui sistemi unix e' tutto gestito in real time.

sei sicuro sicuro che su linux sia tutto in realtime?

perch

Link to comment
Share on other sites

Guest 2fast4u

Ovviamente questo tipo di gestione dei socket non si spiega ed e' presente solo su windows, sui sistemi unix e' tutto gestito in real time.

sei sicuro sicuro che su linux sia tutto in realtime?

perch

Link to comment
Share on other sites

Rimane il fatto che prima della Patch io riuscivo sempre ad entrare ON-Line ora su 10 volte 8 entro ma ionon vedo nessuno, mentre loro vedono me,

Link to comment
Share on other sites

Piu' che un caching di windows penso proprio si tratti del tempo con cui i router mantengono le entry nella tabella di NAT. Come dice Stefano se il socket non viene distrutto hai il rischio che il router mantenga la mappatura nella tabella puntando ancora al primo indirizzo.

Inoltre c'e' anche un altro rischio: se il protocollo di comunicazione prevede la scrittura dell'indirizzo locale non solo nell'header IP ma anche nel payload dati e ti becchi un router che non fa anche analisi dei protocolli a layer piu' alto (ALG) c'e' il concreto rischio che non funzi una fava:

un esempio di questi protocolli e' il SIP usato nel VoIP (all'interno delle chiamate SIP l'applicativo/il telefono voip scrive nel messaggio l'indirizzo locale: il router deve aver attivato la modalita' ALG per il protocollo SIP altrimenti non funziona nulla).

Ovviamente non so come funziona il protocollo che utilizza nk per la rete e quindi non posso dire se questo rischio o meno e' presente anche in nk. Tipicamente i router domestici supportano l'ALG per alcuni protocolli base (il mio oldissimo dlink supporta ALG su SIP, H323, IPSEC, SIP, ICQaudio) per cui se uno si sviluppa ad hoc un protocollo e non tiene conto di questa cosa rischia di aver grossi problemi. Onestamente pero' penso che Stefano non vada a scrivere dentro il payload dati l'indirizzo ip sorgente per cui mi sa tanto che il problema e' legato semplicemente alla perdurare delle entry nella tabella NAT di cui sopra.

per maggiori info su NAT: http://en.wikipedia.org/wiki/Network_address_translation

Edited by Ecio
Link to comment
Share on other sites

Piu' che un caching di windows penso proprio si tratti del tempo con cui i router mantengono le entry nella tabella di NAT. Come dice Stefano se il socket non viene distrutto hai il rischio che il router mantenga la mappatura nella tabella puntando ancora al primo indirizzo.

Inoltre c'e' anche un altro rischio: se il protocollo di comunicazione prevede la scrittura dell'indirizzo locale non solo nell'header IP ma anche nel payload dati e ti becchi un router che non fa anche analisi dei protocolli a layer piu' alto (ALG) c'e' il concreto rischio che non funzi una fava:

un esempio di questi protocolli e' il SIP usato nel VoIP (all'interno delle chiamate SIP l'applicativo/il telefono voip scrive nel messaggio l'indirizzo locale: il router deve aver attivato la modalita' ALG per il protocollo SIP altrimenti non funziona nulla).

Ovviamente non so come funziona il protocollo che utilizza nk per la rete e quindi non posso dire se questo rischio o meno e' presente anche in nk. Tipicamente i router domestici supportano l'ALG per alcuni protocolli base (il mio oldissimo dlink supporta ALG su SIP, H323, IPSEC, SIP, ICQaudio) per cui se uno si sviluppa ad hoc un protocollo e non tiene conto di questa cosa rischia di aver grossi problemi. Onestamente pero' penso che Stefano non vada a scrivere dentro il payload dati l'indirizzo ip sorgente per cui mi sa tanto che il problema e' legato semplicemente alla perdurare delle entry nella tabella NAT di cui sopra.

per maggiori info su NAT: http://en.wikipedia.org/wiki/Network_address_translation

Scusami tanto ma non ho capito quasi una mazza!, in soldoni che posso fare per correre on-line?, per ora riesco solo ad hostare!, Grazie

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.