Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - connessioni
Forum - Visual Basic 6 - connessioni

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
questo e' un altro problema che pero' rappresenta uno dei punti cardine dei programmi p2p sicuri.....
infatti questa tipologia di programmi p2p non si connettono a 700/800 peer come sul kad di emule, ma mantengono 3/4 connessioni......
il problema e' che non riesco a far partire piu' di una connessione sulla stessa porta....

ad esempio se io all'avvio faccio il load di 4 winsock....
il ciclo for lo faccio partire da 1 perche' ws(0) e' gia' presente come inizio della matrice di controlli
  
Codice sorgente - presumibilmente Visual Basic 6

  1. for i = 1 to 3
  2.      load ws(i)
  3.      ws(i).remoteport = 4005
  4.      ws(i).bind 4005
  5. next i



mi genera un errore di indirizzo gia' in uso.....
ma allora si puo' generare 4 connessioni?......

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 9:31
Lunedì, 20/04/2009
Scegli una porta locale diversa per ogni connessione

Bind 4010
Bind 4011
Bind 4012
Bind 4013

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:12
Lunedì, 20/04/2009
non mi e' chiaro per nulla .....
no che non capisca quello che mi hai scritto, ma non mi e' chiaro il modo di farlo....
se io adesso ko un bind diverso per ogni winsock solo il suo corrispettivo che hai il bind dove io ho il remote port accettera' la connessione

esempio:
se io ho appena avviato il programma ed ho 4 connessioni da cercare ed inizio a cercare connessioni una alla volta su  una lista di ip potenziali peer, potro' aggaciarmi solo dell'altra parte a quel winsock che ha come bind la mia remoteport.....

cosi' dovrei avere ben 4 porte a disposizione.....e di ridurre ad 1 su 4 le connessioni....

ma i p2p che usano solo 1 porta udp come fanno?.....

a me' era venuta in mente una cosa , se io cambiassi di volta in volta il mio remotehost
in base alle necessita'.....
perche' io ho fatto caso che il winsock che riceve il messaggio anche se non ha il mio indirizzo nel remotehost il messaggio lo riceve ugualmente.....

ogni volta che invio il messaggio potrei inviare anche l'ip che verra' usato di volta in volta per rispondere.....

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:00
Lunedì, 20/04/2009
Di norma e' vietato usare lo stesso indirizzo nel formato ip:porta

Ma se vuoi farlo allora devi indicare al socket che puo' "riusare" l'indirizzo tramite la API

setsockopt
http://msdn.microsoft.com/en-us/library/ms740476(VS.85).aspx

indicando l'opzione

SO_REUSEADDR

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 12:05
Martedì, 21/04/2009
hai qualche esempio pratico di come si possa fare?.....perche' leggendo msdn non riesco a capire il da farsi......

  

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 12:29
Martedì, 21/04/2009

How to use getsockopt and setsockopt in Visual Basic

http://support.microsoft.com/kb/237688/en-us

PM Quote