allora finalmente ci sono, non sò se è il metodo più corretto, comunque funziona, quello che mi interessa sapere, è se è normale l' uso di due winsock per interfaccia, posto il codice parziale funzionante lato client e server, magari a qualcuno potrebbe interessare, se poi ci sono delle migliorie attendo notizie:
codice:Option Explicit Private Sub Command1_Click() If Winsock1.State <> sckClosed Then Winsock1.Close If Winsock2.State <> sckClosed Then Winsock2.Close Winsock1.Connect "indirizzo", 4001 Winsock2.Connect "indirizzo", 4002 End Sub Private Sub Command2_Click() Winsock2.SendData "apri" Dim immagine() As Byte Open "C:\prova.bmp" For Binary As #1 ReDim immagine(0 To LOF(1) - 1) DoEvents Get #1, , immagine Winsock1.SendData immagine() Close #1 End Sub Private Sub Winsock1_SendComplete() Winsock2.SendData "fine" End Sub ********************************************* Option Explicit Private Sub Form_Load() Winsock1.LocalPort = 4001 Winsock1.Listen Winsock2.LocalPort = 4002 Winsock2.Listen End Sub Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) If Winsock1.State <> sckClosed Then Winsock1.Close Winsock1.Accept requestID End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim immagine() As Byte Winsock1.GetData immagine Put #1, , immagine() DoEvents End Sub Private Sub Winsock2_ConnectionRequest(ByVal requestID As Long) If Winsock2.State <> sckClosed Then Winsock2.Close Winsock2.Accept requestID End Sub Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long) Dim dati As String Winsock2.GetData dati, vbString If Left(dati, 4) = "apri" Then Open App.Path & "\imm.bmp" For Binary Access Write As #1 DoEvents Text1.Text = dati Else If Left(dati, 4) = "fine" Then Text1.Text = dati DoEvents Close #1 DoEvents Picture1.Picture = LoadPicture(App.Path & "\imm.bmp") DoEvents Kill (App.Path & "\imm.bmp") End If End If End Sub

Rispondi quotando