java - 从 Python 客户端读取时出现 java.io.EOFException
问题描述
我正在尝试使用 Java 和 Python 建立服务器-客户端连接。我使用 Java 作为服务器端,使用 Python 作为客户端。将数据从服务器发送到客户端工作正常,但是当我尝试将数据从客户端发送到服务器时,它会抛出 EOFException。我在这里做错了什么?
服务器代码:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class JavaFile {
public static void main(String[] args){
try{
ServerSocket serversocket = new ServerSocket(6000);
Socket socket = serversocket.accept();
DataInputStream input = new DataInputStream(socket.getInputStream());
DataOutputStream output = new DataOutputStream(socket.getOutputStream());
output.writeUTF("Hello Client!");
String s = (String)input.readUTF();
System.out.println(s);
serversocket.close();
}
catch(Exception e){
System.out.println(e);
}
}
}
客户端代码:
import socket
s = socket.socket()
host = socket.gethostname()
port = 6000
s.connect((host, port))
message = s.recv(1024)
print(message.decode())
s.send("Hello Server!".encode())
s.close()
解决方案
推荐阅读
- typescript - 查询 Firebase 集合时出现代码错误 - Typescript
- javascript - 无法从“Window”读取“sessionStorage”属性:拒绝访问此文档
- date - 提取报告选择公式组中的最新记录。水晶 13
- ios - 不能在类内使用变量
- reactjs - 有没有办法强制多个上下文消费者共享状态?
- python - 在 AWS Glue Python Shell 中查询 Athena 表
- neo4j - Neo4j - 在属性标签内创建关系
- scala - 无法使用 Spark 获取 Delta Lake 表的元数据信息
- vba - 用于将选择更改为 New Times Roman 12 点斜体的 Outlook 2016 宏
- jquery - Mapbox-gl 高度 100%