2012-10-25 14 views
-1

我刚刚在这花了两天时间。这是在游戏引擎Unity3D中运行的,但这不应该有所作为。这两条线总是失败:环回连接总是被拒绝在C#

TcpClient client = new TcpClient(); 
client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 15219)); 

我得到的错误是:

System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it. 

    at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy) [0x00000] in <filename unknown>:0 
    at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00000] in <filename unknown>:0 
    at System.Net.Sockets.TcpClient.Connect (System.Net.IPEndPoint remote_end_point) [0x00000] in <filename unknown>:0 
    at StreamIn.Connect (System.String server, System.String message) [0x00011] in C:\XXX\StreamIn.cs:41 
UnityEngine.Debug:Log(Object) 
StreamIn:uPrint(String) (at Assets/StreamIn.cs:27) 
StreamIn:Connect(String, String) (at Assets/StreamIn.cs:77) 
StreamIn:Start() (at Assets/StreamIn.cs:18) 

我用尽了一切办法,包括改变我的防火墙设置,禁用防火墙。

我得到与虚拟IP地址相同的错误。

如果我尝试端口80而不是15219,Unity编辑器冻结。 (我有一个网络服务器正在运行。)

我是否错过了一些明显的东西?还是不明显?

+1

你的客户连接到什么? – RobH

+0

在这个例子中,为了测试的目的。最终,它将连接到同一台机器上的Java应用程序。 – eje211

+0

您是否试过IPAddress.Loopback而不是IPAddress.Parse(“127.0.0.1”)? – DougEC

回答

1

我总是发现它很有用,用我的.NET代码之外的其他网络工具进行智能检查。我认为hercules非常适合您,因为您可以轻松地为您的应用打开一个tcp服务器,以便从客户端角度连接到和/或测试连接。