TCP/IP - Binary Daten senden


  • Solved, siehe 3. Post...


    Server:

    [autoit]


    If (IsBinary($content)) Then
    If ($file_data = False) Then
    $file_data = $content
    Else
    $file_data &= $content
    EndIf
    EndIf
    sendResponse($sockID)

    [/autoit][autoit][/autoit][autoit]

    Func sendResponse($rsockID)
    $rsock = _GUICtrlListView_GetItemText($gui_list, $rsockID-1)
    TCPSend($rsock, "nextdata")
    EndFunc

    [/autoit]


    Client:

    [autoit]

    Func sendFile($file)
    $filename = _StringSplit($file, "\")
    $filedata = FileRead($file)
    $i = 0
    $step = 1023 ; 1023 ; (1024 - 1 = 1023 * 2 = 2046 + 0x = 2048)
    While 1
    $data = StringMid($filedata, $i*$step+1, $step)
    $i += 1
    If ($data = "") Then
    ExitLoop
    EndIf
    TCPSend($tcp, StringToBinary($data))
    waitForResponse()
    WEnd
    TCPSend($tcp, "filewrite;;;"&$filename[UBound($filename)-1])
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func waitForResponse()
    Do
    $recv = TCPRecv($tcp, 8)
    Until $recv = "nextdata"
    EndFunc

    [/autoit]

    Es werden abwechselnd mal Binary Daten, mal normale Daten gesendet.
    Normale stellen auch kein Problem dar, aber die Binarys schon.
    Was mache ich falsch? ^^


    (Leider ist meine schöne Tab-Einrückung beim Einfügen in den Editor hier verloren gegangen... aber wenigstens poste ich nicht die vollen 500 Zeilen code. :D)

    Einmal editiert, zuletzt von Pennywise (14. März 2009 um 02:40)

  • Statt StringMid musste BinaryMid genommen werden.

    Solved. :rock: Der Thread war zwar ein einziges Selbstgespräch - scheinbar gehen meine Fragen über die Kompletenz der Forenmitglieder. :rofl: