java - TCP Socket 通信 Java - Python

标签 java python sockets servlets

我想通过套接字传输一个整数。 我有一个 python 脚本,它打开一个套接字并等待请求,另一端有一个 Java servlet,它在此套接字上发送请求以获取值。

所有通信工作正常,问题是从 java 获取的值导致 EOF 异常。我已经在 python 脚本中尝试了一些转换和格式(我不是这种语言的专家),但没有任何效果。

相反,如果我在 python 中使用 echo 套接字,选择所有该套接字接收并将其发送回 java,一切正常。

但我需要发送一个简单的值。

以下是我使用的代码部分,我尝试过使用 float,这是一个字符串值:

[Python套接字相关说明]

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(server_address)
sock.listen(1)
connection = sock.accept()

[Python echo 套接字工作]

data = connection.recv(16)
if data:
    connection.sendall(data)

相反,我想做:

[Python 返回示例值]

 connection.sendall('55')

如果我从像 Hercules 这样的客户端发送请求,那么该方法就可以工作。但在Java中会导致EOF异常

[Java Servlet - 发送请求]

socket = new Socket(address, port);
dataInputStream = new DataInputStream(socket.getInputStream());
String content = dataInputStream.readUTF(); //EOFexception
Destination.value = content;

最佳答案

通过使用InputStream而不是DataInputStream解决了问题,编写python套接字以将字符串作为字节发送,并将java接收器更改为读取字节流并转换为字符串(适合我的目的的良好格式)。

关于java - TCP Socket 通信 Java - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47705136/

相关文章:

python - 使用 OpenCV 分离对象轮廓

python - 如何从Python代码生成UML图

Linux应用程序未ACK FIN数据包并发生重传

java - 线程 "main"java.lang.NoClassDefFoundError : com/google/inject/Module 中出现异常

java - 无法在 java 调用中引用 javascript 变量

python - 无法显示来自 GridFS、PyMongo 的图像

java - Forefront TMG 与 java 和 php (ftp)

sockets - chrome.sockets API tcp 错误代码?

java - 从外部文件获取 JPA 凭据

java - 包 oracle.jdbc.driver 不存在