Есть девайс который может общаться по телнету. Написал небольшую программу которая отправляет в него команды и забирает ответ.
Global port = 23 ; Порт Global conID.i ; ИД соединения Procedure.s connect(stat.s) ;Процедура подключения с возвратом сообщения о статусе подключения ConID.i = OpenNetworkConnection("192.168.0.138", Port, #PB_Network_TCP|#PB_Network_IPv4) ; Подключение к хосту If conID.i > 0 stat.s="Ok" Else stat.s="Error" EndIf ProcedureReturn stat.s ; Возврат статуса соединения EndProcedure Procedure sendData(message.s) ; Процедура отправки сообщения *Buffer_to = AllocateMemory(100) mem=PokeS(*Buffer_to,Chr(94) + message.s + Chr(13), #PB_Ascii) ; Формат bestcode SendNetworkData(ConID.i, *Buffer_to, mem) FreeMemory(*Buffer_to) EndProcedure Procedure reservData(con.i) ; Процедура приема сообщения message.s size.i Repeat Select NetworkClientEvent(ConID.i) Case #PB_NetworkEvent_Data *mem = AllocateMemory(100) size.i = ReceiveNetworkData(ConID.i, *mem, 100) message.s = PeekS(*mem, size, #PB_Ascii) FreeMemory(*mem) Debug message.s Case #PB_NetworkEvent_None Delay(30) Case #PB_NetworkEvent_Disconnect Debug "Closed" Quit = 1 EndSelect Until Quit EndProcedure If InitNetwork() = 0 MessageRequester("Error", "Can't initialize the network !", 0) End EndIf ConID.i = OpenNetworkConnection("192.168.0.138", Port, #PB_Network_TCP|#PB_Network_IPv4) ; Подключение к хосту If conID.i <> 0 stat.s="Ok" Else stat.s="Error" EndIf Debug stat.s ThreadID=CreateThread(@reservData(),conID.i) For i = 1 To 50 Step 1 Delay (500) sendData("vv") Next i End
Но по прошествии 16 - 20 отправленных и полученных сообщений, соединение рвется.
Отредактировано Dadenard (14.04.2021 07:49:41)