gpt4 book ai didi

java - 简单Java客户端-服务器: Client doent connect to server

转载 作者:行者123 更新时间:2023-12-01 14:23:25 25 4
gpt4 key购买 nike

我正在实现一个客户端-服务器应用程序。我是新来的 。我尝试按照文章 A Simple Java TCP Server and TCP Client 进行操作

实际上我已经有一个可以工作的客户端(不是我的代码)

所以我只需要为其编写服务器即可。

此外,我的服务器将仅由一个客户端连接,因此我并不认为需要支持多个客户端。

正如我所见,使用 netstat -a 创建了一个监听服务器,但客户端无法连接到它。也没有给出任何错误消息,这令人惊讶。就好像对 connect 的调用被忽略了。客户端未见异常。

我的服务器代码(可能有错误)

private static void create_request_server(int requestport) {
// TODO Auto-generated method stub

try {
ServerSocket s1 = new ServerSocket(requestport);
requestsocket = s1.accept();
// Do some stuff . But this accept never breaks.
} catch (Exception e) {
e.printStackTrace();
}
}

正确的客户

try {
fRequestSocket = new Socket("localhost", requestPort);
fRequestWriter = new PrintWriter(fRequestSocket.getOutputStream());
fRequestReader = new BufferedReader(new InputStreamReader(fRequestSocket.getInputStream()));


} catch (UnknownHostException e) {
abort(" UnknownHostException", e);
} catch (IOException e) {
abort(" IOException", e);
}

仅供引用

我的客户端和服务器都在本地主机上

我的服务器严重错误吗?

编辑(接近答案)

因此,在下面发布的宝贵评论的帮助下,我找出了问题所在。问题出在 localhost 和 127.0.0.1 之间

所以我执行了 netstat -a 并看到服务器创建如下:

TCP [::]:56283 Sin-Host LISTENING

而不是

TCP 127.0.0.1:56283 Sin-Host LISTENING 

因此客户端无法连接。关于如何使服务器绑定(bind) 127.0.0.1 的任何想法

可以对 ServerSocket s1 = new ServerSocket(requestport) 进行任何更改吗?

最佳答案

有时 localhost 和 127.0.0.1 会出现问题
尝试一下你的客户端中的 IP 也许这有效。

只是为了比在带有此构造函数的注释中看到它更容易,您可以配置您的服务器:

new ServerSocket(1234,10,InetAddress.getByName("127.0.0.1"));

关于java - 简单Java客户端-服务器: Client doent connect to server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17361973/

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