gpt4 book ai didi

java - 在java中发送一个int。有时会引发异常?

转载 作者:行者123 更新时间:2023-11-30 05:05:18 25 4
gpt4 key购买 nike

好的,我将一个 int 从一个 java 程序发送到另一个程序(此时在同一台计算机上)。但是,有时我会遇到异常并且无法连接:

Exception in thread "main" java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.(Socket.java:375) at java.net.Socket.(Socket.java:189) at Client.main(Client.java:6)

以下是发送代码:

        Socket socket = new Socket("localhost" , 8080);
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeInt(5);
socket.close();

以及接收:

    ServerSocket serverSocket = new ServerSocket(8080);
Socket socket = serverSocket.accept();

DataInputStream din = new DataInputStream(socket.getInputStream());
System.out.println(din.readInt());
socket.close();

这很奇怪,因为有时它会起作用,有时则不起作用。有人知道为什么吗?

最佳答案

我敢打赌,如果您执行以下操作,您会收到此错误:

  1. 启动您的服务器
  2. 启动您的客户端
  3. 重新启动客户端,而不重新启动服务器

您的服务器仅接受一个连接,然后终止。

如果您想接受无限数量的顺序连接,请使用如下循环包围您的服务器代码:

ServerSocket serverSocket = new ServerSocket(8080);
while (true) {
Socket socket = serverSocket.accept();
DataInputStream din = new DataInputStream(socket.getInputStream());
System.out.println(din.readInt());
socket.close();
}

服务完一个请求后,它将再次监听另一个请求或接受等待的请求。

关于java - 在java中发送一个int。有时会引发异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5313524/

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