在什么端口我们可以在Android上运行服务

时间:2015-11-30 12:11:57

标签: android unity3d port thrift

我的情况: 我正在尝试使用运行服务器的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);
    }


}

0 个答案:

没有答案