Jump to content
Sign in to follow this  

TCPlisten TCPaccept problem ?

Recommended Posts


I'm trying to get a simple AutoIt TCP client/server working.

I'm pretty sure of the code, I checked the help and the forums.

It's a bit complicated

- It works on the same machine (client connects to server)

- It doesn't work on 2 different machines (client fails to connect with WSA error 10061)

- I've tried a very basic tcp echo server/client (http://www.mycplus.com/source-code/c-source-code/tcp-client-and-server/) and it works between my 2 machines. So the problem is not my machines.

- The AutoIt client can connect to the previous echo server

- The echo client cannot connect to the AutoIt server (error 10061)

I'm CERTAIN of my tests, so really there's a problem with the AutoIt server

What is wrong with ? Here's the code

$g_IP = ""
$mainSocket = TCPListen($g_IP, 1040)
if ($mainSocket = -1) then
    MsgBox(0, "error", "failed to creaste listening socket")
$clientSock = -1
    $clientSock = TCPAccept($mainSocket)
until $clientSock <> -1
msgbox(0, "good", "client connected")

Share this post

Link to post
Share on other sites

Ah it's always just after posting that I find the solution usually :idea:

In the server, I should have written

$mainSocket = TCPListen("", 1044)

instead of

$mainSocket = TCPListen("", 1044)

Maybe the help file is wrong ?

Share this post

Link to post
Share on other sites

Wrong how, I can't see where it mentions empty quotes?

Well, I need the empty quotes to make it work. Putting in "" like in the help file doesn't work for me.

I think it's quite strange ? What does TCPListen does with that argument exactly ?

Share this post

Link to post
Share on other sites

Oh excuse me, I kind of read wrong up there. The IPAddr-parameter is what IP TCPListen shall "work" on, and is localhost, so obviously that wont work if you want another machine to be able to connect :)

I would guess that setting an empty string ("") sets it as which means it listens to everything (please correct me if I'm wrong!).

In short: set the IP to where you want people to be able to connect from. If you want another machine to connect don't set it to localhost.


Edit: Added link.

Edited by AdmiralAlkex

Share this post

Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.