gpt4 book ai didi

java - TCP Socket 通信 Java - Python

转载 作者:行者123 更新时间:2023-12-02 11:54:18 24 4
gpt4 key购买 nike

我想通过套接字传输一个整数。我有一个 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/

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