Giz Posted March 11, 2013 Share Posted March 11, 2013 (edited) I have 2 questions 1.My server code can connect to the android client only once and if the connection is lost it does not reconnect and therefore it is lost forever This is my code expandcollapse popup#include <GUIConstants.au3> Run("C:\Program Files (x86)\Garmin\GTN Trainer Lite\GTN\sys\sim\GTN Simulator.exe") WinWaitActive("GTN Trainer Lite") WinMove("GTN Trainer Lite", "", 500, 150, 550, 550) Send("!p") Sleep(10000) MouseClick("left", 760, 600, 10) Sleep(2000) MouseClick("left", 760, 600, 10) Sleep(2000) MouseClick("left", 750, 595, 10) Sleep(5000) $ServerIP = @IPAddress1 $Port = 5000 TCPStartup() $MainSocket = TCPListen($ServerIP, $Port) If $MainSocket = -1 Then Exit $ConnectedSocket = -1 Do $ConnectedSocket = TCPAccept($MainSocket) Until $ConnectedSocket <> -1 TrayTip("Info", "Connected", 2) While 1 $recv = TCPRecv($ConnectedSocket, 100000) ;If @error Then ExitLoop If $recv <> "" Then TrayTip("Incoming Command", $recv, 5) _CommandToAction($recv) EndIf ;~ ;If $recv = 3 Then Exit WEnd TrayTip("info", "Closing socket", 5) TCPCloseSocket($ConnectedSocket) TrayTip("info", "TCP shutdown", 5) TCPShutdown() Exit Func _CommandToAction($command) If StringInStr($command, "left") Then TrayTip("info", $command, 5) MouseClick("left", 990, 620,1, 10) EndIf If StringInStr($command, "right") Then TrayTip("info", $command, 5) MouseClick("left", 1010, 620,1, 10) EndIf EndFunc ;==>_CommandToAction How do I modify the program to reconnect to the client even on loss of connection? 2. The received data from the client has a new line character, how do i remove it? I tried using stringReplace($command,@CRLF,"") but it doesn't work Any help is appreciated. Very new to AutoIt and to this forum Any help please? Edited March 11, 2013 by Giz Link to comment Share on other sites More sharing options...
water Posted March 11, 2013 Share Posted March 11, 2013 You already asked this on the GUI forum.Please don't open a second thread, just ask a Mod to move the thread if it's on the wrong forum. Giz 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Giz Posted March 11, 2013 Author Share Posted March 11, 2013 (edited) Ok, Thank you. I just wrote to them. I am so sorry. Very new here, so I couldn't figure it out. I have few modifications in the question though. I have asked an additional question here Edited March 11, 2013 by Giz Link to comment Share on other sites More sharing options...
Giz Posted March 11, 2013 Author Share Posted March 11, 2013 Answer for the second questionSince the client was android and it is linux operations i had to use$command=stringReplace($command,@LF,"") instead of stringReplace($command,@CRLF,"") Link to comment Share on other sites More sharing options...
Giz Posted March 11, 2013 Author Share Posted March 11, 2013 @ Water, Thank you for correcting me on not opening new threads of the same question. The moderator deleted my question in GUI forum. Thanks again Link to comment Share on other sites More sharing options...
Giz Posted March 18, 2013 Author Share Posted March 18, 2013 Answer to the first question expandcollapse popup;Start the TCP Services TCPStartup() $ConnectedSocket = -1 TrayTip("info", "Connecting", 5) ;Create a socket listening for an incoming connection and return main socket identifier $MainSocket = TCPListen($ServerIP, $Port) ;On failure return -1 and exit the program If $MainSocket = -1 Then Exit While 1 TrayTip("info","Listening to port",2) ;Accept the connection from the client Do $ConnectedSocket = TCPAccept($MainSocket) Until $ConnectedSocket <> -1 ;When connected to client receive the data from the client until the connection is lost While 1 ;Receive the data from teh connected client $recv = TCPRecv($ConnectedSocket, 2048) ;If there is an error on loss of connection exit the loop to reconnect If @error Then ExitLoop TrayTip("info","Client Connected",2) ;If the received data is not null call the function _CommandToAction If $recv <> "" Then TrayTip("Incoming Command", $recv, 5) ;check if the command is to disconnect client If StringInStr($recv, "Nocommand") Then ExitLoop ;This function call converts the command received to the necessary actions _CommandToAction($recv) EndIf WEnd TrayTip("info", "Closing socket", 5) If $ConnectedSocket <> -1 Then ;Close the existing connection to reconnect to client TCPCloseSocket($ConnectedSocket) EndIf ;Assign -1 to the variable $ConnectedSocket = -1 WEnd TrayTip("info", "TCP shutdown", 2) ;Close the server socket TCPCloseSocket($MainSocket) ;Shutdown the TCP connection TCPShutdown() ;Exit the application Exit Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now