Ciao a tutti, ho una questione da proporvi. Sto provando a inviare immagini da un'applicazione in un pc, ad un'altra in un altro pc. Il codice funziona alla perfezione in lan, ma appena provo ad inviarla ad uno che non è nella mia lan, l'invio è lentissimo anzi non arriva proprio la foto. Vi posto il codice, sinceramente non capisco perchè è così lento. Spero che qualcuno di voi sia gentile da dirmi dove sbaglio. E' contro il regolamento chiedere dove si sbaglia in un codice??

APPLICAZIONE DEL COMPUTER FUORI DALLA MIA LAN

codice:
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

APPLICAZIONE MIA PER INVIARE L'IMMAGINE

codice:
Option Explicit
Private Sub Command1_Click()
If Winsock1.State <> sckClosed Then Winsock1.Close
If Winsock2.State <> sckClosed Then Winsock2.Close
Winsock1.Connect "192.168.0.2", 4001
Winsock2.Connect "192.168.0.2", 4002
End Sub
Private Sub Command2_Click()
Winsock2.SendData "apri"
Dim immagine() As Byte
Open "C:\prova.jpg" 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