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

Spero che qualcuno di voi sia gentile da dirmi dove sbaglio. E' contro il regolamento chiedere dove si sbaglia in un codice??
Rispondi quotando
