服务器端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。
答案 0 :(得分:1)
实际上,它无疑收到了整个字符串'hi1\rhi2'
。你print
编辑了这个,只看到hi2
部分,因为回车使最后3个字符覆盖(在屏幕上)前3个。
只需添加拆分
a, b = conn.recv(100).split('\r')
你应该没事。
答案 1 :(得分:0)
这对我有用:
out.print("hi1\n");