View Full Version : [vb6] winsock
ho un problema col winsock
devo mettere il programma in ascolto su una determinata porta, il problema è che la macchina ha 3 indirizzi ip:
192.168.0.1
10.10.10.1
e 127.0.0.1 (?)
ha anche due schede di rete e la porta deve stare in ascolto su 192.168.0.1
come si fa ?
il 127.0.0.1 è il locale di ogni macchina (anche se nn in rete), per cui nn lo prendiamo in considerazione
saranno anche le 4 del mattino ma nn capisco il tuo problema, nn sai come fare a mattere in ascolto il winsock ad una determinata connessione?
sai che nn capisco la cosa degli IP, se tu da remoto cerchi di connetterti al winsock lui a qlc IP ti colleghi della macchina in questione va bene, se ne ha + di uno è indifferente, tanto lui li prende tutti.
Se nn sei capace a connettere due pc tramite il winsosk ti posso dare una mano, tanto nel client tu dici che IP vuoi collegare e lui si collegerà se la porta dell'IP selezionato è in ascolto.
ciaoooooooooooooo :p
il problema forse non è chiaro
se una macchina ha 2 indirizzi ip su due schede di rete differrenti e metto il winsock in ascolto su una determinata porta, lui su quale ip si mette in ascolto ? su tutti e due ?
Se non specifichi l'ip su cui deve stare in ascolto...lui ascolta su tutti gli IP... Corripsonde al bind sull'indirizzo 0.0.0.0 ;)
per specificarglielo come si fa ?
gli devo specificare 192.168.0.1
CLIENT: Si, nel Winsock.RemoteIP devi mettere quello che ti interesse ed in Windowsk.RemotePort la porta a cui si connette
SERVER: invece devi mettere Winsock.LocalPort la porta a cui vuoi mettere in ascolto.
Poi per "ascoltare" fai Winsock.Listen
Quando il client invece fa Winsock.Connect fa scattare l'evente ConnectionRequest, a questo punto fai cosi (se è un collegamento diretto, cioè se solo un client si connette per volta):
Private Sub Winsock_ConnectionRequest(ByVal requestID As Long)
If Winsock <> sckClosed Then
Winsock.Close
End If
Winsock.Accept requestID
end sub
Resuscito il thread per non crearne uno nuovo :D
Io sto cercando di fare una sorta di programmino di chat con visual basic 6 e winsock.
il problema è che se invio velocemente molte stringhe di testo, queste si accavallano.
Praticamente, dopo che inserisco la nuova stringa arrivata (da DataArrival) nella casella di testo, aggiungo un chr$(13) per andare a capo.
Ma se arrivano molte stringhe insieme, si accavallano, e nella casella di testo compaiono non a capo a affiancate :mad:
Non so come risolvere il problema...
Mi aiutate per favore?
Grazie
Ciaux :D ;)
Quanto è molto strano perchè in teoria il controllo winsock ha un buffer che memorizza tutte le cose che ti arrivano e te le "risputa" una alla volta :rolleyes:
Perchè per ovviare al problema nn mandi già la stringa contenente il carattere vbCrLf ?!?!
Cosi anche se ne arrivano + di una va poi a capo lo stesso ;)
Originariamente inviato da matpez
Quanto è molto strano perchè in teoria il controllo winsock ha un buffer che memorizza tutte le cose che ti arrivano e te le "risputa" una alla volta :rolleyes:
Perchè per ovviare al problema nn mandi già la stringa contenente il carattere vbCrLf ?!?!
Cosi anche se ne arrivano + di una va poi a capo lo stesso ;)
vbCrLf???
Intendi quello che io chiamo chr(13) ? :D
Caspita mi hai letto nella mente :D
Comunque ho fatto come hai detto, e sembra funzionare!!!
Grandissimo ;)
Grazie 1000000000
Ciaux :D ;)
Originariamente inviato da DooM1
vbCrLf???
Intendi quello che io chiamo chr(13) ? :D
Caspita mi hai letto nella mente :D
Comunque ho fatto come hai detto, e sembra funzionare!!!
Grandissimo ;)
Grazie 1000000000
Ciaux :D ;)
Sono contento :D
Il tutto quello che in VB6 inizia con vb... possiamo definirli parametri....per esempio il vbCrLf è la combinazione di chr(13) + chr(10). C'è ne sono un infinità, per esempio vbChecked per le checkbox, oppure vbNullChar che contiene il caattere chr(0)...insomma tanti tanti :p
Originariamente inviato da matpez
Sono contento :D
Il tutto quello che in VB6 inizia con vb... possiamo definirli parametri....per esempio il vbCrLf è la combinazione di chr(13) + chr(10). C'è ne sono un infinità, per esempio vbChecked per le checkbox, oppure vbNullChar che contiene il caattere chr(0)...insomma tanti tanti :p
Ah ecco, scusa se ti disturbo ancora :D ... ma che differenza c'è tra chr(13) e chr(10)???
Non l'ho mai capito...!
E soprattutto, perchè combinarli insieme?!
Ciao e grazie ancora :D ;)
chr(10)=Line Feed -> cambia linea
chr(13)=Carriage Return -> il carrello torna all'inizio riga
combinati assieme fa la doppia azione torna a capo con il cursore e va all'inizio riga.
Come puoi notare sono anche le iniziali di vbCrLf :p
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.