PDA

Visualizza la versione completa : [winsock]


Dennis
05-09-2002, 18:44
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)

imente
05-09-2002, 19:55
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!

Dennis
07-09-2002, 18:41
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???

imente
07-09-2002, 21:04
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!

Dennis
08-09-2002, 13:40
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

imente
08-09-2002, 16:35
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

Dennis
08-09-2002, 23:08
burton_tel0@hotmail.com

non ho problemi a dare la mia e-mail....

:D

Loading