套接字服务器未收到连接

时间:2018-10-25 05:47:21

标签: java android sockets

我正在一个项目中,Android应用程序将拆分一个秘密(Shamir秘密共享)并与多个收件人共享。

我使用了JerzySkalski在this中提供的秘密共享方案 线。我正在将Android应用程序初始化为侦听端口8700的套接字服务器。秘密共享收件人程序在Linux计算机上运行。因此,基本上,当共享准备就绪时,Android将启动套接字服务器,并继续接受连接,并根据客户端ID为客户端分配共享。

我遇到了一个问题,我的Android应用程序没有收到来自Linux收件人的任何连接请求。它今天晚上在公共网络上曾经工作过一次,我一直在尝试在家里复制它,但是它不起作用。我试图切换到热点,但仍然无法正常工作。现在我想知道代码是否正确,因此需要您的帮助。

我的Android代码: 它在AsyncTask内运行

protected Void doInBackground(Void... params)
{
    try {
        //create a new socket with the given port and IP address

        server = new ServerSocket(8700,50,InetAddress.getByName("10.16.16.33"));
        int port=server.getLocalPort();
        System.out.print("port : " + port);
        System.out.print("addr"+server.getInetAddress().getHostAddress());
        System.out.println("\n \n Server socket created, waiting for client to connect .. ");

        while (client_count<n) {
            //start accepting connections in the socket created

            new server_socket(server.accept());
        }

    }
}



class server_socket extends Thread {
    Socket ser_soc;


    private server_socket(Socket socket) {
        ser_soc = socket;
        start();

    }

    public void run() {
        try {
            System.out.println("client connected  ... ");
            if (KEK_share_count < KEK_n)
                send_KEK_shares();

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

收件人代码:

int client_id=Integer.parseInt(args[0]);
        System.out.println("Recipient #"+client_id);
        port=Integer.parseInt(args[1]);
        server_ip=args[2];
        System.out.println("\n Connecting to server "+server_ip+ " on port : "+port+" to receive share." );
         client_soc=new Socket(InetAddress.getByName(server_ip),port);

        get_shares(client_id);

我检查了手机的IP地址,并在Android应用程序中对该值进行了硬编码以进行测试。 我正在以这种方式运行Java代码: java -jar Test.jar 1 8700 10.16.16.33

0 个答案:

没有答案