gpt4 book ai didi

Java:网络中的 EOFException

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:09 24 4
gpt4 key购买 nike

我是网络新手,当我尝试运行 MyClient.java 时收到 EOFException。

MyServer.java

public class MyServer {
public static void main(String[] args) {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(4321);
} catch (IOException e) {
e.printStackTrace();
}
while(true) {
try {
Socket socket = serverSocket.accept();
OutputStream os =socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
bw.write("Hello networking");

bw.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

MyClient.java

public class MyClient {
public static void main(String[] args) {
Socket socket = null;
try {
socket = new Socket("127.0.0.1", 4321);
InputStream is = socket.getInputStream();
DataInputStream dis = new DataInputStream(is);
System.out.println(dis.readUTF());

dis.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (ConnectException e) {
System.err.println("Could not connect");
} catch (UTFDataFormatException e) {
System.err.println("if the bytes do not represent a valid modified UTF-8 encoding of a string");
} catch (EOFException e) {
System.err.println("if this input stream reaches the end before reading all the bytes");
} catch (IOException e) {
e.printStackTrace();
}
}
}

我得到如果此输入流在读取所有字节之前到达末尾的错误,并且该错误似乎是由 dis.readUTF() 调用引起的。

有人可以帮助我理解我错过了什么吗?我正在尝试读取服务器在连接时写入客户端的内容,即Hellonetworking

谢谢。

最佳答案

问题出在您的服务器代码中如果您想使用 DataInputStream 读取套接字,则应该使用 DataOutputStream.writeUTF(String str) 写入套接字。

关于Java:网络中的 EOFException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6769206/

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