Function Reference

TCPSend

接続しているソケットにデータを送信します。

TCPSend ( mainsocket, data )

 

パラメータ

mainsocket TCPConnect関数によって返される接続しているソケットの識別子(ソケットID)
data 接続しているソケットに送信するバイナリ/文字列

 

返し値

成功 接続しているソケットに送信したbyte数を返します。
失敗 0を返し、@errorを設定します。
@error: WindowsAPIのWSAGetErrorの返し値(MSDNを参照)。

 

注意

なし。

 

関連

TCPStartup, TCPConnect, TCPListen, TCPTimeout (Option)

 


Opt('MustDeclareVars', 1)

;==============================================
;==============================================
;クライアント側! サーバー開始後、実行すること!!!!!!!!!!!!!!!
;==============================================
;==============================================

Example()

Func Example()
    ; 再利用可能な情報を設定
    ;--------------------------
    Local $ConnectedSocket, $szData
    ; $szIPADDRESSにサーバーの位置を設定。PC名をIPアドレスに変更する
;   Local $szServerPC = @ComputerName
;   Local $szIPADDRESS = TCPNameToIP($szServerPC)
    Local $szIPADDRESS = @IPAddress1
    Local $nPORT = 33891

    ; TCPサービスを開始
    ;==============================================
    TCPStartup()

    ; 接続を表す変数を初期化
    ;==============================================
    $ConnectedSocket = -1

    ;IPとPORT 33891を使用してサーバーに接続を試みる
    ;=======================================================
    $ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)

    ; エラーが起きた場合はエラー内容を表示
    If @error Then
        MsgBox(4112, "Error", "TCPConnect failed with WSA error: " & @error)
        ; エラーが無い場合はサーバーに送るデータを
        ;   入力する入力ボックスのループへ
    Else
        ;サーバーに送るデータを入力するための無限ループ
        While 1
            ; データ送信用入力ボックス
            $szData = InputBox("Data for Server", @LF & @LF & "Enter data to transmit to the SERVER:")

            ; 入力ボックスがキャンセルされた場合、空欄のままの場合は無限ループを抜ける
            If @error Or $szData = "" Then ExitLoop

            ; $szData...にデータが入っているはずなので、接続しているソケットを使用して送信を試みる
            TCPSend($ConnectedSocket, $szData)

            ; 送信が@errorが"失敗"の場合、ソケットが接続していない
            ;----------------------------------------------------------------
            If @error Then ExitLoop
        WEnd
    EndIf
EndFunc   ;==>Example