Myicq Posted July 9, 2012 Share Posted July 9, 2012 I have sent to a customer a small application (compiled EXE on an XP system). The application would connect by ethernet as a client using a certain port, and send some commands. In essense this: ; start TCP TCPStartup() ; make a connection to port 3000 $s = TCPConnect($g_IP, "3000") ; send a command ; do not need to wait for reply from server in this example tcpsend($s, "CMD#") ; close connection TCPCloseSocket($s) ; shutdown TCP TCPShutdown() The customer complianed about constantly getting "ERROR: 10060 when connecting". This is a timeout, which normally comes when server is not available. Then the customer installed / activated Telnet in Win7 (http://www.fettesps.com/windows-7-enable-telnet/) And it worked... So my questions are: 1) does tcp() functions really depend on Telnet being activated / installed ? I thought they were lower-level, and telnet just another application. 2) if so, how can I programmatically check if the correct functionality is there ? Perhaps this question is more Windows than AutoIT. But I would like to avoid having the extra support on my small scripts once supplied to customers. I am just a hobby programmer, and nothing great to publish right now. Link to comment Share on other sites More sharing options...
Tripredacus Posted July 9, 2012 Share Posted July 9, 2012 In Windows 7, you can use DISM to check to see if Telnet is enabled. Here is example output from running DISM. NOTE: it requires running elevated, and the results are not returned instantly, takes about 10-20 seconds. C:windowssystem32>DISM /ONLINE /GET-FEATUREINFO /FEATURENAME:TelnetClient Deployment Image Servicing and Management tool Version: 6.1.7600.16385 Image Version: 6.1.7601.17514 Feature Information: Feature Name : TelnetClient Display Name : Telnet Client Description : Connect to remote computers by using the Telnet protocol Restart Required : Possible State : Disabled Custom Properties: (No custom properties found) The operation completed successfully. So if the "State" is Disabled, then you can run your command to install the TelnetClient feature. DISM is included in the OS already... in fact you can also enable features with DISM as well and not just pkgmgr.exe. Twitter | MSFN | VGCollect Link to comment Share on other sites More sharing options...
Myicq Posted July 9, 2012 Author Share Posted July 9, 2012 @Tripredacus : Thanks for that technical background info. I will have to look up on that tool. But still did not find out, is the AutoIT3 version of TCPConnect() depending on Win7/Telnet feature, or some library installed with that ? Devs should be able to shed some light on this ? I am just a hobby programmer, and nothing great to publish right now. Link to comment Share on other sites More sharing options...
Tripredacus Posted July 10, 2012 Share Posted July 10, 2012 If you look at the helpfile fr TCPConnect, you'll notice that @error comes from WSAGetError. So it is using the Windows API calls.WSAConnect on MSDN:http://msdn.microsoft.com/en-us/library/windows/desktop/ms741559%28v=vs.85%29.aspxIt even notes that for Vista and higher to do something else, this may be related to the difference with XP you found:For applications targeted to Windows Vista and later, consider using the WSAConnectByList or WSAConnectByName function which greatly simplify client application design. Twitter | MSFN | VGCollect 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