簡體   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