如何终止java socket发送到python的数据?

时间:2015-03-13 20:35:00

标签: java python sockets

服务器端python:

import socket
import sys
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 18404))
s.listen(1)
conn, addr = s.accept()
print 'Connected with ' + addr[0] + ':' + str(addr[1])
print conn.recv(100)
s.close()

客户端java:

Socket client=new Socket("localhost",18404);
PrintWriter out = new PrintWriter(client.getOutputStream(),true);
out.print("hi1");
out.print("hi2");
out.close();

我从print conn.recv(100)获得的输出是" hi1hi2" 我的问题是,如何终止第一个out.print发送的输出(" hi1");所以它只收到" hi1"。 当我这样做时,我尝试了out.print("hi1\r");它只收到了hi2。

2 个答案:

答案 0 :(得分:1)

实际上,它无疑收到了整个字符串'hi1\rhi2'。你print编辑了这个,只看到hi2部分,因为回车使最后3个字符覆盖(在屏幕上)前3个。

只需添加拆分

a, b = conn.recv(100).split('\r')

你应该没事。

答案 1 :(得分:0)

这对我有用:

out.print("hi1\n");