gpt4 book ai didi

java连接重置错误

转载 作者:行者123 更新时间:2023-12-02 05:03:56 25 4
gpt4 key购买 nike

我是 Java 的新手。如果您发现这是一个非常基本的问题,请原谅。Stack Overflow 中已经有很多关于此问题的答案,我浏览了几乎所有可以在 Stack Overflow 以及其他一些论坛中获得的帮助。不幸的是他们都没有帮助我。

我有一个客户端/服务器程序,其中客户端向服务器发送一个字符串,服务器只是将另一个字符串附加到客户端发送的字符串并将其发送回客户端。

服务器程序如下所示。

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class server {

public static void main(String[] args) {

try
{
ServerSocket server = new ServerSocket(7300);
Socket s = server.accept();
DataInputStream inp = new DataInputStream(s.getInputStream());
DataOutputStream out = new DataOutputStream(s.getOutputStream());
String str =inp.readUTF();
str = str+" buddy!";
out.writeUTF(str);



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

}

}

客户端看起来像这样。

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.*;

public class client {

public static void main(String[] args) {
try
{
Socket s = new Socket("192.168.1.3",7300);
DataInputStream inp = new DataInputStream(s.getInputStream());
DataOutputStream out = new DataOutputStream(s.getOutputStream());

out.writeUTF("hi");
System.out.println(inp.readUTF());
Thread.sleep(2000);
out.writeUTF("hello");
System.out.println(inp.readUTF());


}

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

}

当客户端写入“hi”时,一切正常,当客户端开始发送“hello”时,我收到连接重置错误。我不明白我犯了什么错误,请帮助我解决这个问题。

我收到的错误输出如下所示。

hi  buddy!
java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.DataOutputStream.write(Unknown Source)
at java.io.DataOutputStream.writeUTF(Unknown Source)
at java.io.DataOutputStream.writeUTF(Unknown Source)
at sokry.client.main(client.java:18)

最佳答案

在您的服务器示例中,即使客户端向 DataOutputStream 写入两次,readUTF 仅在 DataInputStream 上调用一次。因此,只需添加

str = inp.readUTF();
str = str + " buddy!";
out.writeUTF(str);

对于您的服务器示例,在最后一个 out.writeUTF(str) 之后,将解决您的问题。

关于java连接重置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27982601/

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