欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基 礎(chǔ) 函 數(shù) 參 考


TCPCloseSocket

關(guān)閉 TCP 套接字(socket).

TCPCloseSocket ( 套接字 )

參 數(shù)

套接字 TCPListenTCPAccept 函數(shù)返回的套接字標(biāo)識(shí)(SocketID).

返 回 值

成功: 返回 1.
失敗: 返回 0, 設(shè)置 @error
@error: 為 windows API WSAGetError 的返回值 (請(qǐng)查閱 MSDN).

備 注

None.

相 關(guān) 函 數(shù)

TCPStartup, TCPListen, TCPAccept, TCPShutdown

函 數(shù) 示 例


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>

;==============================================
;==============================================
;服務(wù)器!! 首先啟動(dòng) !!!!!!!!!!!!!!!
;==============================================
;==============================================

; 初始化代表連接的變量
;==============================================
Global $ConnectedSocket = -1

Global $MainSocket

Example()

Func Example()
    OnAutoItExitRegister("Cleanup")

    Local $g_IP, $RogueSocket, $GOOEY, $edit, $input, $butt, $msg
    Local $ret, $recv

    $g_IP = "127.0.0.1"

    ; 啟動(dòng) TCP 服務(wù)
    ;==============================================
    TCPStartup()

    ; 創(chuàng)建監(jiān)聽 "SOCKET"
    ;==============================================
    $MainSocket = TCPListen($g_IP, 65432, 100)
    If $MainSocket = -1 Then Exit
    $RogueSocket = -1

    ; 創(chuàng)建聊天 GUI 對(duì)話框
    ;==============================================
    $GOOEY = GUICreate("我的服務(wù)端", 300, 200)
    $edit = GUICtrlCreateEdit("", 10, 40, 280, 150, $WS_DISABLED)
    $input = GUICtrlCreateInput("", 10, 10, 200, 20)
    $butt = GUICtrlCreateButton("發(fā)送", 210, 10, 80, 20, $BS_DEFPUSHBUTTON)
    GUISetState()


    ; GUI 消息循環(huán)
    ;==============================================
    While 1
        $msg = GUIGetMsg()

        ; GUI 關(guān)閉
        ;--------------------
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop

        ; 用戶點(diǎn)擊發(fā)送
        ;--------------------
        If $msg = $butt Then
            If $ConnectedSocket > -1 Then
                $ret = TCPSend($ConnectedSocket, GUICtrlRead($input))
                If @error Or $ret < 0 Then
                    ; 發(fā)生錯(cuò)誤時(shí), 關(guān)閉套接字并復(fù)位 ConnectedSocket 為 -1
                    ;----------------------------------------------------------------
                    TCPCloseSocket($ConnectedSocket)
                    WinSetTitle($GOOEY, "", "我的服務(wù)器 - 用戶端切斷連接")
                    $ConnectedSocket = -1
                ElseIf $ret > 0 Then
                    ; 用我們發(fā)送的數(shù)據(jù)更新編輯控件
                    ;----------------------------------------------------------------
                    GUICtrlSetData($edit, GUICtrlRead($edit) & GUICtrlRead($input) & @CRLF)
                EndIf
            EndIf
            GUICtrlSetData($input, "")
        EndIf

        If $RogueSocket > 0 Then
            $recv = TCPRecv($RogueSocket, 512)
            If Not @error Then
                TCPCloseSocket($RogueSocket)
                $RogueSocket = -1
            EndIf
        EndIf

        ; 如果沒有連接則尋找一個(gè)
        ;--------------------
        If $ConnectedSocket = -1 Then
            $ConnectedSocket = TCPAccept($MainSocket)
            If $ConnectedSocket < 0 Then
                $ConnectedSocket = -1
            Else
                WinSetTitle($GOOEY, "", "我的服務(wù)器 - 用戶端連接")
            EndIf

            ; 如果連接,則嘗試讀一些數(shù)據(jù)
            ;--------------------
        Else
            ; 運(yùn)行一個(gè)無條件的接收,避免另外的用戶端嘗試連接
            ;----------------------------------------------------------------
            $RogueSocket = TCPAccept($MainSocket)
            If $RogueSocket > 0 Then
                TCPSend($RogueSocket, "~~rejected")
            EndIf

            $recv = TCPRecv($ConnectedSocket, 512)

            If $recv <> "" And $recv <> "~~bye" Then
                ; 用我們接收到的數(shù)據(jù)更新編輯控件
                ;----------------------------------------------------------------
                GUICtrlSetData($edit, GUICtrlRead($edit) & ">" & $recv & @CRLF)

            ElseIf @error Or $recv = "~~bye" Then
                ; 發(fā)生錯(cuò)誤時(shí), 關(guān)閉套接字并復(fù)位 ConnectedSocket 為 -1
                ;----------------------------------------------------------------
                WinSetTitle($GOOEY, "", "我的服務(wù)器 - 用戶端切斷連接")
                TCPCloseSocket($ConnectedSocket)
                $ConnectedSocket = -1
            EndIf
        EndIf
    WEnd

    GUIDelete($GOOEY)
EndFunc   ;==>Example

Func Cleanup()
    ;腳本退出時(shí)關(guān)閉打開的套接字以及 TCP 服務(wù)
    ;----------------------------------------------------------------------
    If $ConnectedSocket > -1 Then
        TCPSend($ConnectedSocket, "~~bye")
        Sleep(2000)
        TCPRecv($ConnectedSocket, 512)
        TCPCloseSocket($ConnectedSocket)
    EndIf
    TCPCloseSocket($MainSocket)
    TCPShutdown()
EndFunc   ;==>Cleanup

provider with jb51.net (unicode)