; Этот скрипт - сервер, запускайте его первым! (Вторым запускайте второй пример из функции TCPConnect, который является клиентом).

Example()

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

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

	; Установка IP-адреса и порта
	Local $sIPAddress = "127.0.0.1" ; Этот IP-адрес работает только для теста на вашем компьютере.
	Local $iPort = 65432 ; Порт, используемый для соединения.

	; Создает сокет связанный с указанным IP-адресом и портом с максимальным количеством подключений на ожидании 100.
	Local $iListenSocket = TCPListen($sIPAddress, $iPort, 100)

	If @error Then ; Если ошибка, то выход
		; Кто-то возможно уже прослушивает этот IP-адрес и порт (ещё одна копия скрипта уже выполняется?).
		MsgBox(4096 + 16, "Сервер", "Не удалось прослушать сокет, @error = " & @error)
		Return False
	EndIf

	; Переменная для клиентского сокета.
	Local $iSocket = 0
	Do ; Ожидание кого-то, кто подключится (Без ограничений).
		; Принимает входящие соединения, если имеются (Сокет закрывается, при завершении; один сокет на одного клиента).
		$iSocket = TCPAccept($iListenSocket)

		If @error Then ; Если ошибка, то выход
			MsgBox(4096 + 16, "Сервер", "Не удалось принять входящее соединение, @error = " & @error)
			Return False
		EndIf
	Until $iSocket <> -1 ; Если не равно -1, это означает, что клиент подключен.

	; Закрывает прослушиваемый сокет, чтобы позволить соединение в дальнейшем.
    TCPCloseSocket($iListenSocket)

	MsgBox(4096, "Сервер", "Клиент подключен.")

	TCPCloseSocket($iSocket) ; Закрывает сокет
EndFunc   ;==>Example

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