- Home /
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.
Answer by SV_Janjo · Jul 18, 2014 at 08:27 AM
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?
Answer by iamthecoolguy11 · Nov 12, 2016 at 12:12 AM
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);
}