我的服务器不断将字符串发送到我的主机String1 = '{a:1, b:2}'
和String2 = '{a:4, b:5}'
import socket
HOST = '127.0.0.1'
PORT = 65432
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
但是我的主人正在接收两个字符串,为一个字符串{a:1, b:2}{a:4, b:5}
import socket
HOST = '127.0.0.1'
PORT = 65432
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
while True:
data = s.recv(1024)
我不想失去数据,也不能以速度妥协。请建议一些解决方案。
预先感谢
如果您在文件上写了两个字符串并将其交给某人,他们将如何知道第一个字符串在哪里结束并且下一个字符串开始?这也是插座的工作方式。
您必须缓冲数据并实现方法提取单独的字符串。可以通过发送一个字节来指示字符串的大小,或者由不会出现在字符串(null,newline等(中的字符分开来完成。
。请参阅此答案。