Функция TCPSend

         Описание функции


TCPSend

Высылает данные на подключенный сокет.

TCPSend ( mainsocket, data )

Параметры

mainsocket Идентификатор подключенного сокета (SocketID) возвращаемый функцией TCPConnect.
data бинарные данные, либо строка высылаемая подключенному сокету.

Возвращаемое значение

Успех:Возвращает количество байт отправленное подключенному сокету.
Ошибка:Возвращает 0 и устанавливает @error.
@error:Возвращает значения windows API WSAGetError (смотрите MSDN).

Примечания

Если строки Юникода необходимо для передачи, они должны кодироваться/декодироваться с помощью StringToBinary()/BinaryToString().

См. также

TCPRecv, TCPStartup, TCPConnect, TCPListen, TCPTimeout (Опция), StringToBinary

Пример

; Этот скрипт - клиент. Запустите этот скрипт вторым, после запуска скрипта сервера из примера функции TCPRecv

Example()

Func Example()
    TCPStartup() ; Запуск TCP служб.

    ; Регистрация функции OnAutoItExit для остановки служб при завершении скрипта.
    OnAutoItExitRegister("OnAutoItExit")

    Local $iSocket, $sData
    ; Установить $sIPAddress на такой, где сервер. Мы изменим имя компьютера IP-адрес
    ;   Local $szServerPC = @ComputerName
    ;   Local $sIPAddress = TCPNameToIP($szServerPC)

    ; Установка IP-адреса и порта
    Local $sIPAddress = @IPAddress1
    Local $iPort = 33891 ; Порт, используемый для соединения.

    ; Подключает прослушивание сокета, указанного IP-адреса и порта.
    $iSocket = TCPConnect($sIPAddress, $iPort)

    If @error Then ; Если ошибка, то
        MsgBox(4112, "Ошибка", "Клиент:" & @CRLF & "Не удалось подключиться, @error = " & @error)
    Else
        ; Бесконечный цикл запрашивающий данные для отправки на сервер
        While 1
            ; Запрос данных для передачи
            $sData = InputBox("Клиент", @LF & @LF & "Введите данные для передачи серверу")

            ; Нажмите отмену или оставьте данные пустыми, чтобы завершить бесконечный цикл
            If @error Or $sData = '' Then ExitLoop

            ; Необходимо иметь данные в $sData, чтобы выслать их через подключенный сокет.
            ; Конвертирует нативный UTF-16 в UTF-8 и в бинарные данные
            TCPSend($iSocket, StringToBinary($sData, 4))

            ; Если происходит сбой отправки данных с @error, это означает, что сокет отключен. Соответственно выход из цикла.
            If @error Then ExitLoop
        WEnd
    EndIf
EndFunc   ;==>Example

Func OnAutoItExit()
    TCPShutdown() ; Останавливает TCP службу.
EndFunc   ;==>OnAutoItExit