繁体   English   中英

如何终止java套接字发送给python的数据?

[英]how do I terminate data sent by java socket to python?

服务器端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。

实际上,毫无疑问,它接收到整个字符串'hi1\\rhi2' 您将其print出来,只看到了hi2部分,因为回车使后3个字符(在屏幕上)覆盖了前3个字符。

只需添加一个拆分

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

你应该没事的

这对我有用:

out.print("hi1\n");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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