[英]TCP Socket communication Java - Python
我想通过套接字传输一个整数。 我有一个python脚本,可以打开一个套接字并等待请求,而在另一端,有一个Java servlet可以在此套接字发送请求以获取值。
所有的通信都运行良好,问题是从Java获得的值导致EOFexception。 我在python脚本中尝试了一些转换和格式(我不是这种语言的专家),但是没有任何效果。
相反,如果我在python中使用echo套接字,则选择所有接收和发送回java的套接字,一切正常。
但是我需要发送一个简单的值。
以下是我使用的代码部分,我已经尝试过float,这是一个String值:
[Python套接字相关指令]
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(server_address)
sock.listen(1)
connection = sock.accept()
[Python回显套接字正常工作]
data = connection.recv(16)
if data:
connection.sendall(data)
相反,我想做:
[Python返回一个示例值]
connection.sendall('55')
如果我从Hercules之类的客户端发送请求但在Java中导致EOFexception则可以正常工作
[Java Servlet-发送请求]
socket = new Socket(address, port);
dataInputStream = new DataInputStream(socket.getInputStream());
String content = dataInputStream.readUTF(); //EOFexception
Destination.value = content;
通过使用InputStream而不是DataInputStream解决了该问题,编写python套接字以字节形式发送字符串,并更改了Java接收器以读取字节流并将其转换为字符串(对我而言是一种很好的格式)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.