我的情况: 我正在尝试使用运行服务器的Unity创建一个Android应用程序,所以我可以从PC调用该服务。 但是,当我尝试连接到服务器时,我收到错误消息:
SocketException: No connection could be made because the target machine actively refused it.
System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy)
System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP)
System.Net.Sockets.TcpClient.Connect (System.Net.IPEndPoint remote_end_point)
System.Net.Sockets.TcpClient.Connect (System.Net.IPAddress[] ipAddresses, Int32 port)
在IP地址上执行ping很好,所以主机是可以访问的,据我所知,android设备没有防火墙,所以我猜这是端口的问题。
目前我正在尝试在端口9096上运行该服务,如果我只是在编辑器中运行该应用程序,则该工作正常。这是android的有效端口吗? 如果没有,那么什么是有效的?
关于问题可能有什么其他想法吗?
谢谢。
其他信息: 该设备是Google Tango,我想使用Thrift创建服务器并从Windows计算机访问设备的位置。
=============================================== =========
public void startServerService()
{
try
{
TangoService.Processor processor = new TangoService.Processor(this);
serverTransport = new TServerSocket(9096);
server = new TThreadPoolServer(processor, serverTransport);
Debug.Log("Starting the server...");
server.Serve();
}
catch (UnityException e)
{
Debug.Log(e);
}
}
void startClient()
{
try{
TTransport transport = new TSocket(ipAddress, 9096);
transport.Open ();
TProtocol protocol = new TBinaryProtocol(transport);
client=new TangoService.Client(protocol);
}
catch(UnityException e)
{
Debug.Log(e);
}
}