Danke aber soweit war ich schon
Also ich hab hier mal was.. mein Problem ist aber immernoch das keine richtige Auswertung gemacht wird ob nun das ein oder andere Datenpacket angekommen ist. Es funktioniert zwar aber ab und zu (bei Übertragung über das Internet) verfälscht es den Bildinhalt oder macht das Bild gar unbrauchbar. Das liegt daran wenn wegen dem "genialen "UDP" Protokoll was aber für mich hier eine muss ist ein Packet oder mehr fehlen.
Ich benötige in diesen Script eine Überprüfung der Datenpackete.. so eine Art Server schickt x Packete und wartet bei jedem weiteren Packet auf eine Erhaltbestätigung des Clients...
Kann mir hier jemand dazu helfen? Ist wirklich dringend
Hier mal der Code wie weit ich bin..
'Server Code
Private Const DOWNLOADSTART = "d1"
Private Const DOWNLOAD = "d2"
Private Const DOWNLOADENDE = "d3"
Private Const ECHO = "e1"
Private DateiNr As Integer
Private Warten As Boolean
Private Sub Form_Load()
Winsock1.RemoteHost = "127.0.0.1"
Winsock1.RemotePort = 10102
Winsock1.Bind 10101
Picture1.Picture = LoadPicture("lobbyzpos.jpg")
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Daten As String
Dim Befehl As String
Dim Temp As String
Dim DownloadSchritt As Long
Winsock1.GetData Daten
Befehl = Left(Daten, 2)
Daten = Mid(Daten, 3)
If Right(App.Path, 1) = "\" Then
Path = App.Path & ""
Else
Path = App.Path & "\"
End If
Select Case Befehl
Case DOWNLOADSTART
DateiNr = FreeFile
Open Path & Daten For Binary Access Read As DateiNr
SendData DOWNLOADSTART, LOF(DateiNr)
Sleep (0.1)
Do While Not EOF(DateiNr)
DownloadSchritt = 4092
If DownloadSchritt > LOF(DateiNr) - _
Loc(DateiNr) Then
DownloadSchritt = LOF(DateiNr) - _
Loc(DateiNr)
End If
If DownloadSchritt = 0 Then Exit Do
Temp = Space(DownloadSchritt)
Get #DateiNr, , Temp
SendData DOWNLOAD, Temp
Sleep (0.1)
Loop
Close DateiNr
SendData DOWNLOADENDE
End Select
End Sub
Sub Sleep(Ratio As String)
Start = Timer
Do While Timer < Start + Ratio
DoEvents
Loop
End Sub
Private Sub SendData(ByVal Befehl As String, Optional _
ByVal Text As String)
On Error Resume Next
Winsock1.SendData Befehl & Text
End Sub
und hier der Client code:
'Client
Dim Bild(0 To 1) As String
Dim Dat As Boolean
Private Const DOWNLOADSTART = "d1"
Private Const DOWNLOAD = "d2"
Private Const DOWNLOADENDE = "d3"
Private Const ECHO = "e1"
Private DateiNr As Integer
Sub Sleep(Ratio As String)
Start = Timer
Do While Timer < Start + Ratio
DoEvents
Loop
End Sub
Private Sub Command1_Click()
If Right(App.Path, 1) = "\" Then
Path = App.Path & "lobbyzpos.jpg"
Else
Path = App.Path & "\lobbyzpos.jpg"
End If
DateiNr = FreeFile
Open Path For Binary Access Write As #DateiNr
SendData DOWNLOADSTART, "lobbyzpos.jpg"
End Sub
Private Sub Command2_Click()
Winsock1.Close
Winsock1.RemoteHost = "127.0.0.1"
Winsock1.RemotePort = 10101
Winsock1.Bind 10102
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Daten As String
Dim Befehl As String
Winsock1.GetData Daten
Befehl = Left(Daten, 2)
Daten = Mid(Daten, 3)
Select Case Befehl
Case DOWNLOADSTART
SendData ECHO
Case DOWNLOAD
Put #DateiNr, , Daten
SendData ECHO
Case DOWNLOADENDE
Close DateiNr
Picture1.Picture = LoadPicture("lobbyzpos.jpg")
End Select
End Sub
Private Sub SendData(ByVal Befehl As String, Optional _
ByVal Text As String)
On Error Resume Next
Winsock1.SendData Befehl & Text
End Sub