Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何终止java套接字发送到python的数据?_Java_Python_Sockets - Fatal编程技术网

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

如何终止java套接字发送到python的数据?,java,python,sockets,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

服务器端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” 我的问题是,如何终止first out.print(“hi1”)发送的输出;所以它只接收“hi1”。
我尝试了
out.print(“hi1\r”)当我这样做时,它只收到hi2。

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

只需添加一个拆分

a, b = conn.recv(100).split('\r')
你应该很好。

这对我很有用:

out.print("hi1\n");

我尝试过它仍然需要两个字符串“hi1\n”和“hi\2”。你是对的,谢谢。我现在不那么困惑了。但是,你知道有没有其他方法可以只接收一个字符串并停止接收?@user3571278,这不是任何一种既可靠又实用的方法,因为TCP是一种流协议——一个八位组接一个八位组;你可以在上面破解一些协议,但这需要发送者和接收者都遵循另一个协议,这实际上是一个单独的Q(我鼓励你在开始时完整解释为什么你认为你需要这样的功能)。