Webplayer connecting to TCP server: No connection could be made because the target machine actively refused it

Hi, I’m struggling with this problem for some time but it’s quite specific and I could not find apropriate answer.

I’m programming webplayer game which has to connect to TCP socket server. First I run socket policy server on port 843 (Unity\Editor\Data\Tools\SocketPolicyServer\sockpol.exe) and then I run the GameServer itself on port 13337. I tried both nodejs server (my own) and C# server (from the example: http://wiki.unity3d.com/index.php/Simple_TCP/IP_Client_-_Server) but both don’t work.

When I run the game, first I prefetch socket policy file from socket policy server (SPS). SPS sends succesfully socket policy file with permission to connect to any port. Then I try to connect to GameServer using sharpconnect library but Unity displays error in it’s console:

Server is not active. Please start server and try again. System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it

Funny thing is that server is running and I can connect to it via telnet so it looks more like Unity problem. And it does the same thing with nodejs and C# too. Anyone has some guidance for me? I can send some sources if needed. Thank you.

OK, I decided to track packets to see where they’re getting lost. I noticed that whatever server port I set in sharpconnect library, packets are sent to port 10000. For now I decided to run server on this particular port and it seems to be working. Does anybody know why is Unity sending data to this port?

I had the same problem and found out it was unity blocking it. Heres how to stop unity from blocking it.

 void Connect()
 {
       //need to tell unity to let me use the port im about to use
       Security.PrefetchSocketPolicy(IP,PORT); 
       //now I can connect to my server
       ClientSocket.Connect(IP, PORT);
 }