基 础 函 数 参 考


TCPSend

在套接字(socket)连接上发送数据.

TCPSend ( 主套接字, 数据 )

参 数

主套接字 TCPConnect 函数返回连接套接字标识符.
数据 发送的二进制数据/字符串.

返 回 值

成功: 返回连接套接字发送的字节数量.
失败: 返回 0, 设置 @error.
@error: 为 windows API WSAGetError 的返回值 (请查阅 MSDN).

备 注

如果需要传递 Unicode 字符串, 它们必须被 StringToBinary()/BinaryToString() 编/解码.

相 关 函 数

TCPRecv, TCPStartup, TCPConnect, TCPListen, TCPTimeout (Option), StringToBinary

函 数 示 例


;==============================================
;==============================================
;客户端! 启动服务器后再启动我!!!!!!!!!!!!!!!
;==============================================
;==============================================

Example()

Func Example()
    ; 启动 TCP 服务
    ;==============================================
    TCPStartup()

    ; 设置一些可重复使用的的信息
    ;--------------------------
    Local $ConnectedSocket, $szData
    ; 设置 $szIPADDRESS 到服务器. 我们将改变 PC 名称为一个 IP 地址
    ;   Local $szServerPC = @ComputerName
    ;   Local $szIPADDRESS = TCPNameToIP($szServerPC)
    Local $szIPADDRESS = @IPAddress1
    Local $nPORT = 33891

    ; 初始化表示连接的变量
    ;==============================================
    $ConnectedSocket = -1

    ;尝试 IP 地址和端口 33891 连接到服务器
    ;=======================================================
    $ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)

    ; 如果有错误...则显示这个错误
    If @error Then
        MsgBox(4112, "错误", "TCPConnect 失败与出现 WSA 错误: " & @error)
        ; 如果没有错误, 则循环发送输入框数据到服务器.
    Else
        ;无限循环发送要求的数据到服务器
        While 1
            ; 传输数据的输入框
            $szData = InputBox("用于服务器的数据", @LF & @LF & "输入的数据传输到服务器:")

            ; 如果取消输入框或输入框空白, 则退出无限循环
            If @error Or $szData = "" Then ExitLoop

            ; 我们应该贮存数据到 $szData... 以便通过连接的套接字发送.
            ; 转换 AutoIt 原 UTF-16 道 UTF-8
            TCPSend($ConnectedSocket, StringToBinary($szData, 4))

            ; 如果遇到发送失败 @error, 则断开连接的套接字
            ;----------------------------------------------------------------
            If @error Then ExitLoop
        WEnd
    EndIf
EndFunc   ;==>Example

provider with jb51.net (unicode)