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