2
我想從套接字服務器(Java)發送圖像到套接字客戶端(Python),但客戶端中接收到的圖像的大小不正確並且未打開。我不知道我做錯了什麼。有什麼建議麼?將圖像從套接字服務器(java)發送到套接字客戶端(python)
服務器(JAVA):
...
BufferedImage image = ImageIO.read (new File("c:\\tmp\\File.png"));
ImageIO.write(image, "png", connectionSocket.getOutputStream());
...
客戶端(Python)的:
try:
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(host , port)
data = client_socket.recv(1024)
fp = open (path, "wb")
while data:
data = client_socket.recv(1024)
if data:
if not data: break
fp.write (data)
fp.flush()
fp.close()
client_socket.close()
except:
print "could not connect to %s:%s " %(host, port
使用base64編碼到transfert – Tokazio
謝謝能否請您進一步解釋 – ezzitt
你必須知道你會送多少數據,以確保接收所有的他們。在java中,在轉移之前獲取圖像大小(例如,稱爲's'),首先將大小''發送給python客戶端,然後讀取's'下一個數據。否則,您可以在獲取它時使用結束分隔符來傳輸和讀取數據。 – Tokazio