Java套接字只使用环回



我尝试使用java套接字将我的笔记本电脑连接到另一台笔记本电脑(在同一网络上,均使用Windows 10(。

这是客户端代码:

Socket SocketServIAChat;
try 
{
SocketServIAChat = new Socket("192.168.1.10", 50065);
} 
catch (IOException ex) 
{
jTextAreaErrorMessage.setText(ex.getMessage());
return;
}

服务器代码:

try 
{
listeningSocket = new ServerSocket(50065);
listeningSocket.setSoTimeout(1500);
} 
catch (IOException ex) {
Logger.getLogger(ThreadLoginRequests.class.getName()).log(Level.SEVERE, null, ex);}
...
Socket socketLogin = listeningSocket.accept();

但出于某种原因,即使我指定了一个ip地址,笔记本电脑也只在环回中寻找主机,而不是在专用网络上。证据如下:

环回流量(wireshark(

Wi-fi流量(wireshark(

我还为两台笔记本电脑的防火墙添加了一条规则,以接受端口50065上的tcp传入和传出。

那么,有没有一种方法可以参数化套接字以使用正确的网络接口(使用专用网络的接口(,或者我在这里遗漏了什么?

首先,检查您是否能够从另一台笔记本电脑ping一台。如果是,请在下面尝试。

地址字段包含此侦听套接字正在侦听的基本地址。它包含IP地址和端口号。

如果侦听套接字侦听机器的所有IP地址,则地址的IP部分为0.0.0.0。

尝试绑定到您的本地IP或使用";0.0.0.0";

InetAddress addr = InetAddress.getByName("0.0.0.0");// Based on your requirement you can use local address also "192.168.1.10"
try 
{
listeningSocket = new ServerSocket(50065, 50, addr);
listeningSocket.setSoTimeout(1500);
} 
catch (IOException ex) {
Logger.getLogger(ThreadLoginRequests.class.getName()).log(Level.SEVERE, null, ex);}

相关内容

  • 没有找到相关文章

最新更新