2016-07-06 4 views
0

Я работаю в туристическом агентстве, и мы использовали Autoit некоторое время. У нас есть рабочий TCP-сервер, созданный с помощью Autoit, но наш клиент не работает.Не удается отправить сообщение на сервер TCP

Вот неисправный код

$port = 1942 

$addr = 192.168.101.111 

$connexion = TCPConnect($addr, $port) 

TCPSend("bus has arrived") 

TCPCloseSocket($connexion) 
+0

Похоже, что этого кода недостаточно, чтобы действительно исследовать вашу проблему. Также будьте осторожны, что ваше форматирование заставляет автоматические системы учитывать этот спам, поэтому у вас есть вторая причина для редактирования. –

+0

@PaulStelian как отредактировать? –

ответ

1

Добро пожаловать в StackOverflow. При размещении вопросов вы можете использовать кнопку «{}», расположенную на панели инструментов сообщения, и поместить свой код туда, чтобы ее можно было читать лучше.

Что касается вашего вопроса, есть несколько ошибок и вещей, которые вы пропустили в коде.

Если вы хотите что-либо сделать в отношении TCP/UDP в AutoIT - сначала вам нужно запустить их службы, а затем закрыть их.

Во многих языках программирования строковые переменные требуют двух «» в начале и конце строки. То же самое с AutoIT.

При использовании TCPSend первым параметром является сокет, а второй - это сообщение, которое оно отправит.

Вот пример сценария, который я написал. Не стесняйтесь изменять его. Я также прокомментировал это.

#Include <ButtonConstants.Au3> 
#Include <EditConstants.Au3> 
#Include <GUIConstantsEx.Au3> 
#Include <StaticConstants.Au3> 
#Include <WindowsConstants.Au3> 
#Include <GUIEdit.Au3> 
#Include <Misc.Au3> 
#NoTrayIcon 
Opt ('GUIOnEventMode', 1) 

;We are using Input boxes so the user can type in the IP/Port/Msg and they will be stored as variables for later use 
$IP = InputBox("SO TCP Connector", "Receiver's IP Address", "0.0.0.0", "", _ 
     - 1, -1, 0, 0) 
$Port = InputBox("SO TCP Connector", "Receiver's Port", "80", "", _ 
     - 1, -1, 0, 0) 
$Message = InputBox("SO TCP Connector", "Message to send", "Sample text", "", _ 
     - 1, -1, 0, 0) 

;Starting the TCP service 
TCPStartup() 

;Opening a socket 
$iSocket = TCPConnect($IP, $Port) 

;Sending our message 
TCPSend($iSocket, $Message) 

;Closing the socket from before 
TCPCloseSocket($iSocket) 

;Stopping the TCP Service 
TCPShutdown() 
+0

Почему использование входных полей? –

+0

@ AnneSkeitzig Я сказал, что это пример, который вы можете использовать и модифицировать, если хотите. Я использую поля ввода, чтобы избежать необходимости редактировать сценарий каждый раз, когда сервер меняет свой IP/порт, а также не нужно редактировать его для нового сообщения. – Dragg

+0

, но будет ли он работать, если я использую '$ port = 1942' и '$ ip = 192.168.100.111'? –

Смежные вопросы