GetActiveTcpConnections issue in Unity (behaving differently from C# application)
Hello, I have a TCP socket connected to another C# application (unrelated to Unity). For reliability sake, I decided to not use Socket's connected property but fetch active Tcp Connections and check for mine. (Feel free to use the code, it's the only reliable way I've found)
TcpConnectionInformation[] tcpConnections =
IPGlobalProperties
.GetIPGlobalProperties()
.GetActiveTcpConnections()
.Where(x => x.LocalEndPoint.Equals(ClientSocket.LocalEndPoint)
&& x.RemoteEndPoint.Equals(ClientSocket.RemoteEndPoint))
.ToArray();
return (tcpConnections != null && tcpConnections.Length > 0 && tcpConnections.First().State == TcpState.Established);
Simple and great, and it works great in another C# application, but not in Unity. Further research have proven unsuccessful as it simply does not seem to give the same result at all. I get a very different number of Tcp connections (40 more connections in Unity on average), and none of them matching what I'm looking for. Updating the scripting runtime did not change anything as I hoped it might have. I'm willing to try whatever ideas, loophole or hacks you might have, as long as I have something instant and reliable.
Answer by Wolfram · Oct 28, 2019 at 03:33 PM
Is this still a problem for you? I found this in the release notes for 2018.4.9 (and it's supposedly fixed in current versions of 2019.2 as well):
Scripting: Fixed port numbers returned from GetActiveTcpConnections on Windows are not correct. (1165578, 1174668)
Your answer
Follow this Question
Related Questions
Problem with SSL connection TCP socket Server python / Client C# in Unity 1 Answer
How can I receive UDP messages or similar in WebGL? 0 Answers
Can is use Bluetooth Sockets with InTheHand? 0 Answers
How to detect line of sight in C# Console App which acts as a TCP server. 0 Answers
Sending an array of ints through ClientRPC (or some other way?) 0 Answers