Visualizza la versione completa : [winsock]
eccomi qui...
come faccio io a inviare dei dati tramite winsock?
ho un form, uno scrive dentro a un txt numero ip e porta del destinatario, poi schiaccia connetti... io devo inviare ( e ricevere)
il contenuto di una textbox... fare tipo una chat?
winsock.sendata e cosa scrivo?
HELP
(ditemi se avete capito 0)
devi fare 2 programmi
che comunicano uno con l'altro
uno è il server (aspetta la connessione)
e l'altro è il client (si connette)
CLIENT
un Winsock che si chiami tcpClient
una textbox che si chiami txtSendData
una textbox che si chiami txtOutput
una textbox che si chiami txtIP
un bottone che si chiami cmdConnect
CODICE CLIENT
Private Sub cmdConnect_Click()
tcpClient.RemoteHost = txtIP.Text
tcpClient.RemotePort = 1001
tcpClient.Connect
End Sub
Private Sub txtSendData_Change()
tcpClient.SendData txtSendData.Text
End Sub
Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
tcpClient.GetData strData
txtOutput.Text = strData
End Sub
SERVER
un Winsock che si chiami tcpServer
una textbox che si chiami txtSendData
una textbox che si chiami txtOutput
CODICE SERVER
Private Sub Form_Load()
tcpServer.LocalPort = 1001
tcpServer.Listen
End Sub
Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
If tcpServer.State <> sckClosed Then _
tcpServer.Close
tcpServer.Accept requestID
End Sub
Private Sub txtSendData_Change()
tcpServer.SendData txtSendData.Text
End Sub
Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
tcpServer.GetData strData
txtOutput.Text = strData
End Sub
Componi questi due programmi (differenti)
poi avvia i due EXE Client e Server
sul client scrivi nella textbox txtIP
il numero IP del server (in questo caso
lo stesso computer quindi
localhost oppure 127.0.0.1
poi clikka il button cmdConnect
a quel punto il Server e il Client si comunicano
e se scrivi sulla text di uno, appare in quella
dell'altro (programma)
chiaro?
se non riesci a farli fungere, ti posso mandare il
programma già fatto...
mi basta la tua email...
CIAO!
bene... ho modificato cosi:
SERVER
Private Sub cmdconnetti_Click()
tcpserver.Listen
End Sub
Private Sub cmddisconnetti_Click()
tcpserver.Close
End Sub
Private Sub Form_Load()
tcpserver.Listen
End Sub
Private Sub tcpserver_ConnectionRequest(ByVal requestID As Long)
If tcpstate <> sktClosed Then
tcpsever.Close
tcpserver.Accept requestID
txtIP.Text = tcpserver.RemoteHostIP
TxtPorta.Text = tcpserver.RemotePort
End If
End Sub
Private Sub tcpserver_DataArrival(ByVal bytesTotal As Long)
Dim datiarrivo As String
tcpserver.GetData datiarrivo
txtEntrata.Text = datiarrivo
txtbytes.Text = tcpserver.BytesReceived
End Sub
Private Sub txtUscita_Change()
tcpserver.SendData txtUscita.Text
End Sub
CLIENT
Private Sub cmdconnetti_Click()
tcpserver.Listen
End Sub
Private Sub cmddisconnetti_Click()
tcpserver.Close
End Sub
Private Sub Form_Load()
tcpserver.Listen
End Sub
Private Sub tcpserver_ConnectionRequest(ByVal requestID As Long)
If tcpstate <> sktClosed Then
tcpsever.Close
tcpserver.Accept requestID
txtIP.Text = tcpserver.RemoteHostIP
TxtPorta.Text = tcpserver.RemotePort
End If
End Sub
Private Sub tcpserver_DataArrival(ByVal bytesTotal As Long)
Dim datiarrivo As String
tcpserver.GetData datiarrivo
txtEntrata.Text = datiarrivo
txtbytes.Text = tcpserver.BytesReceived
End Sub
Private Sub txtUscita_Change()
tcpserver.SendData txtUscita.Text
End Sub
DOVE SBAGLIO???
forse non hai capito bene come funziona
POTRESTI PER FAVORE USARE LE MIE SORGENTI CHE TI HO
DATO NEL POST SOPRA?
le tue sono completamente sbagliate
sia il Client che il Server
si mettono in LISTEN
invece il Server in LISTEN
il client deve CONNECT
chiaro?
sono le basi del winsock
prendi le mie sorgenti,
falle funzionare, e poi semmai fai delle modifiche
ok?
se non riesci a farle fungere dammi una email
che ti mando il progetto funzionante!
ciao!
Originariamente inviato da imente
le tue sono completamente sbagliate
nn dirmi cosi chew mi demoralizzzo! :eek: :sbav:
cmq...
io mi diletto solamente con VB... per in tanto....
i tuoi sorgenti originali funzionano, solo che dal server al client non vanno! cioè... se scrivo qualcosa nel text del client sul server si vede, viceversa no!
... nel mio ci sono alcuni errori... ho ripetuto un po di cosette... non è che potresti dare un occhiata a quello che ho scritto io ( o meglio cambiato dal tuo?)
grazie mille
non tela prendere e non ti demoralizzare!
sono errori comuni... ;)
cmq le mie non sono sbagliate
io le faccio comunicare da client a server
e da server a client
se scrivi nelle rispettive textbox txtSend
vedrai che nelle rispettive textbox txtOutput
appare il testo
a questo punto ti PREGHEREI di dirmi la tua email
la mia è imente@virgilio.it
così ti mando le MIE sorgenti... e vedrai che
fungono
se ho notato bene le differenze sono:
display dimensioni data ricevuta
e aggiunta di un tasto disconnect (mi raccomando!
CONNECT solo sul client, DISCONNECT su entrambi!)
ok?
quindi dammi l'email che mando tutto
(se non vuoi "pubblicizzarla" sul forum
manda una email alla mia mail che ti rispondo
all'indirizzo che mi arriva ;)
ciao
burton_tel0@hotmail.com
non ho problemi a dare la mia e-mail....
:D