繁体   English   中英

TCP套接字通信Java-Python

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM