Function Reference


TCPConnect

Create a socket connected to an existing server.

TCPConnect ( IPAddr, port )

Parameters

IPAddr Internet Protocol dotted address(IpV4) as "192.162.1.1".
port port on which the created socket will be connected.

Return Value

Success: the main socket identifier.
Failure: -1 or 0 and sets the @error flag to non-zero.
@error: -2 not connected.
1 IPAddr is incorrect.
2 port is incorrect.
10060 Connection timed out.
    A connection attempt failed because the connected party did not properly respond after a period of time,
    or the established connection failed because the connected host has failed to respond.
    See connect timeout example.
Windows API WSAGetLastError return value (see MSDN).

Remarks

This function is used by a client to communicate with the server.

Related

TCPListen, TCPRecv, TCPSend, TCPStartup, TCPTimeout (Option)

Example

Example 1

#include <MsgBoxConstants.au3>
#include <WinAPIError.au3>

; I am the client, start me after the server! (Start first the TCPAccept example script).

Example()

Func Example()
        TCPStartup() ; Start the TCP service.

        ; Register OnAutoItExit to be called when the script is closed.
        OnAutoItExitRegister("OnAutoItExit")

        ; Assign Local variables the loopback IP Address and the Port.
        Local $sIPAddress = "127.0.0.1" ; This IP Address only works for testing on your own computer.
        Local $iPort = 65432 ; Port used for the connection.

        ; Assign a Local variable the socket and connect to a Listening socket with the IP Address and Port specified.
        Local $iSocket = TCPConnect($sIPAddress, $iPort)

        ; If an error occurred display the error code and return False.
        If @error Then
                ; The server is probably offline/port is not opened on the server.
                Local $iError = @error
                MsgBox(($MB_ICONERROR + $MB_SYSTEMMODAL), "", "Could not connect, Error code: " & $iError & @CRLF & _WinAPI_GetErrorMessage($iError))
                Return False
        Else
                MsgBox($MB_SYSTEMMODAL, "", "Connection successful")
        EndIf

        ; Close the socket.
        TCPCloseSocket($iSocket)
EndFunc   ;==>Example

Func OnAutoItExit()
        TCPShutdown() ; Close the TCP service.
EndFunc   ;==>OnAutoItExit

TCPConnect with timeout

#include <MsgBoxConstants.au3>
#include <WinAPIError.au3>

; I am the client, start me after the server no more than 10sec ! (The server script is the TCPAccept example script).

Example()

Func Example()
        Local $sMsgBoxTitle = "AutoItVersion = " & @AutoItVersion

        TCPStartup() ; Start the TCP service.

        ; Register OnAutoItExit to be called when the script is closed.
        OnAutoItExitRegister("OnAutoItExit")

        ; Assign Local variables the loopback IP Address and the Port.
        Local $sIPAddress = "127.0.0.1" ; This IP Address only works for testing on your own computer.
        Local $iPort = 65432 ; Port used for the connection.

        Opt("TCPTimeout", 1000)
        Local $nMaxTimeout = 10 ; script will abort if no server available after 10 secondes

        Local $iSocket, $hTimer = TimerInit()

        While 1
                ; Assign a Local variable the socket and connect to a Listening socket with the IP Address and Port specified.
                $iSocket = TCPConnect($sIPAddress, $iPort)

                ; If an error occurred display the error code and return False.
                If @error = 10060 Then
                        ; Timeout occurs try again
                        $nMaxTimeout -= 1
                        If $nMaxTimeout <= 0 Then
                                MsgBox(($MB_ICONERROR + $MB_SYSTEMMODAL), $sMsgBoxTitle, "Could not connect, after " & Int(TimerDiff($hTimer) / 1000) & " sec")
                                Return False
                        EndIf
                        ContinueLoop
                ElseIf @error Then
                        ; The server is probably offline/port is not opened on the server.
                        MsgBox(($MB_ICONERROR + $MB_SYSTEMMODAL), $sMsgBoxTitle, "Could not connect, Error code: " & @error & @CRLF & _WinAPI_GetErrorMessage(@error))
                        Return False
                Else
                        MsgBox($MB_SYSTEMMODAL, $sMsgBoxTitle, "Connection successful after " & Int(TimerDiff($hTimer) / 1000) & " sec")
                        ExitLoop
                EndIf

        WEnd

        ; Close the socket.
        TCPCloseSocket($iSocket)
EndFunc   ;==>Example

Func OnAutoItExit()
        TCPShutdown() ; Close the TCP service.
EndFunc   ;==>OnAutoItExit