Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
ammetto che la tentazione di puntarti un laser addosso ed incenerirti e forte.Certo che ho un firewall .-.
Quindi mi attacco in pratica...
Pero' se uso una porta che ho aperto dal router funge...
Peccato che il progetto sia inutile cosi'...
SpeedJack il suo problema attuale è il firewall software, che non gli permette di connettersi su localhost, non ha ancora bisogno di aprire le porte nel router per provare con amici esterni. Gli basta aprire la porta per vederlo funzionare.
Se è il firewall allora hai già spiegato tutto te ;-)intendo x chi apre una chat che fa da server senza aprire la porta..




Si è una possibile soluzione - tuttavia oltre a non prevedere la disconnessione accidentale nel mio specifico caso non mi farebbe rispettare il protocollo.Comunque un'altra soluzione è far si che prima della chiusura, il client invii il messaggio al server che si sta disconnettendo, ovviamente così non funzionerebbe se il pc con il client viene staccato manualmente dalla rete internet o perde la connessione.
Spero quindi questa discussione possa dare un valore aggiunto a chi vuole cimentarsi in quest'impresaComunque non ti preoccupare se questo thread non è attivo. è in rilievo, e il necroposting non esiste in questo tipo di discussioni.

Esattamente, TCP si occupa di controllare l'integrità dei pacchetti: è un metodo di trasferimento più lento rispetto ad UDP che non fa questo controllo però nettamente più affidabile visto che lo scopo del protocollo DCC è scambiare informazioni testuali e file. Suppongo la documentazione presente su MSDN sia realizzata male perchè - torno a ripetere - mi sembra altamente improbabile che non sia possibile catturare l'evento senza necessariamente ricorrere ad una soluzione di tipo PING.se non ricordo male il DCC si appoggia sul TCP. i socket tcp comunicano quando la connessione è stata interrotta (come ottenere questa informazione dipende da linguaggio)
If cliente.Client.Poll(1, SelectMode.SelectRead) Then
'Socket disconnesso
Else
'Socket connesso
End If
Si, "fare una send" è quello che intedevo con metodo PINGcomunque per quello che so io, in c, se io faccio una recv o una send ed il socket è disconnesso, mi restituisce 0.... credo che anche in questo caso succeda una cosa simILE (forse con un'eccezione)

Il codice da me postato in precedenza non è propriamente corretto, lo avevo inserito in un timer di 1 secondo e funzionava fintantochè dall'altra parte della connessione non veniva inviato nulla nello stesso momento in cui l'istruzione veniva verificata. In altre parole se lo socket era in lettura era occupato e quindi non disponibile in lettura (sono un principiante e questa spiegazione benchè apparentemente logica non so se è corretta, quindi non prendete ciò che dico per oro colato). Ad ogni modo qui di seguito il codice corretto:Edit: ho risolto usando l'istruzione Poll (nella sua proprietà SelectMode.SelectRead si occupa di controllare se lo socket è disponibile in lettura, se non lo è vuol dire che lo socket è disconnesso):
If cliente.Client.Poll(1, SelectMode.SelectRead) And (cliente.Client.Available = 0) Then
'Istruzioni da eseguire se lo socket è disconnesso.
Else
'Istruzioni da eseguire se lo socket è connesso.
End If
