Java 使用wifi direct连接时,插座连接失败

Java 使用wifi direct连接时,插座连接失败,java,android,sockets,Java,Android,Sockets,我正在尝试在多个设备之间建立连接,一个作为服务器或组所有者,另一个作为客户端,这是我使用wifi direct和wifi p2p实现的,工作正常 在组中连接设备后,我尝试在服务器和多个客户端之间建立套接字连接,但无法使用套接字进行连接。显示以下错误 java.net.ConnectException:在5000ms后未能连接到/192.168.49.1(端口8988):断开连接失败:ECONREFUSE(连接被拒绝) SockertServer代码 @Override protected

我正在尝试在多个设备之间建立连接,一个作为服务器或组所有者,另一个作为客户端,这是我使用wifi direct和wifi p2p实现的,工作正常

在组中连接设备后,我尝试在服务器和多个客户端之间建立套接字连接,但无法使用套接字进行连接。显示以下错误

java.net.ConnectException:在5000ms后未能连接到/192.168.49.1(端口8988):断开连接失败:ECONREFUSE(连接被拒绝)

SockertServer代码

 @Override
  protected Object doInBackground(Object[] params) {
try {
    server = new ServerSocket(8988);
    Log.d("ServerActivity", "Server: Socket opened");

    Log.d("ServerActivity", server.getLocalPort() + "");

    Log.d("ServerActivity", server.getInetAddress() + "");


    Socket client = server.accept();
    Log.d("ServerActivity", "Server: connection done");

    ObjectOutputStream objectOutputStream = new ObjectOutputStream(
            client.getOutputStream()
    );

    objectOutputStream.writeObject("Hie");

    client.close();
    server.close();

} catch (IOException e) {
    e.printStackTrace();
}


return null;
}
客户端套接字

 @Override
          protected Object doInBackground(Object[] params) {
try {
    mSocket = new Socket();

    mSocket.bind(null);
    mSocket.connect((new InetSocketAddress(getAddr, portNo)), SOCKET_TIMEOUT);

    if (mSocket.isConnected()) {
        Log.d("Client Activity", "Socket Connected Successfully");
    } else {
        Log.d("Client Activity", "Socket not  Connected ");
    }

    ObjectInputStream objectOutputStream = new
            ObjectInputStream(mSocket.getInputStream());

    msg = (String) objectOutputStream.readObject();

    message.onMessageSend(msg);
    Log.e(".......................", "Message" + msg);

    objectOutputStream.close();
} catch (IOException e) {
    e.printStackTrace();
} catch (ClassNotFoundException e) {
    e.printStackTrace();
} finally {
    if (mSocket != null) {
        if (mSocket.isConnected()) {
            try {
                mSocket.close();
            } catch (IOException e) {
                // Give up
                e.printStackTrace();
            }
        }
    }
}

return msg;
}

所以任何人都可以帮我解决这个问题。提前谢谢

EconRefused表示已尝试连接,但远程主机端口未侦听。因此,这可能是因为:

它是有效的IP吗?使用ifconfig或ipconfig进行检查。您可以尝试ping服务器

也可能是由于以下原因:

  • -服务器无法发送响应:请确保后端在IP和端口上正常工作

  • -SSL连接被阻止

  • -请求超时:更改请求超时


您不必调用
mSocket.bind(null)
。扔掉它并尝试连接,你确定服务器仍在侦听吗?如果我使用NSD进行进一步诊断,可能需要查看日志,以便为m对等方提供信息,即ip和端口号