gpt4 book ai didi

Java套接字客户端超时

转载 作者:行者123 更新时间:2023-12-01 15:27:43 26 4
gpt4 key购买 nike

使用Java套接字,我做了一个简单的服务器。这是有效的,因为每当我将地址(192.168.1.68:54321)输入另一台计算机的网络浏览器时,它就会发送数据。但是当我尝试使用 Java 套接字连接到服务器时,它超时了。

客户端连接代码:

public void connect() throws IOException {
socket = new Socket(ip, port); // times out here
socket.setKeepAlive(true);
in = new ObjectInputStream(socket.getInputStream());
out = new ObjectOutputStream(socket.getOutputStream());
t = new Thread(this);
run = true;
t.start();
}

这个问题有什么解决办法吗?

最佳答案

What is a solution to this problem?

这取决于问题是什么。但我预计它是以下一项(或多项):

  1. 客户端使用了错误的 IP 地址。
  2. 客户端使用了错误的端口号。
  3. 服务器未运行。
  4. 存在物理网络连接问题或路由问题。
  5. 连接因客户端、服务器或网络中某个位置的防火墙问题而被阻止。

其中,我认为最后一种可能性最大。

(请注意,其中许多问题更有可能导致不同的故障模式;即立即失败而不是连接超时。但是,这取决于有关您的环境的各种详细信息,其中一些可能对您来说是不透明的。)

<小时/>

The rest shouldn't be problems since it works on the same computer as my client when I use a web browser.

你错了。您的网络浏览器将无法成功连接到您的服务。 54321 上的服务未实现 HTTP,因此您的浏览器无法从中获取页面。

TCP 和 UDP 的防火墙规则往往特定于您尝试使用的端口。事实上,你的网络浏览器可以在(我期望的)端口 80 和 443 上与服务器通信,这并不能说明其他东西是否可以在其他端口上连接。更复杂的是,您的网络浏览器可以配置(或自动配置)以使用网络代理,而可能意味着它没有与该代理通信完全直接托管。

根据您所说的情况,这很可能是与防火墙相关的问题。这是我最好的答案。

关于Java套接字客户端超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9969602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com