File Transfer mit UDP

conaito

Gesperrt
Hi leute nach ewig verzweifelten suchen nach einem Beispiel Script (VB) hab ich mich jetzt hier her gewendet.

Ich benötige dringend ein Beispiel wie ich mit dem UDP protokoll Dateien versenden kann. Hab auch schon was von TFTP gehört aber da hab ich noch weniger Einblick.. vielleicht hat ja hier jemand ein Beispiel.

Vielen Dank
 
Zuletzt bearbeitet:
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
 
Zurück