Python 3.x 我正在从服务器发送两个字符串,而我的主机正在将这两个字符串作为一个字符串读取。我怎样才能解决这个问题?
我的服务器正在不断地向我的主机发送字符串Python 3.x 我正在从服务器发送两个字符串,而我的主机正在将这两个字符串作为一个字符串读取。我怎样才能解决这个问题?,python-3.x,multithreading,sockets,multiprocessing,queue,Python 3.x,Multithreading,Sockets,Multiprocessing,Queue,我的服务器正在不断地向我的主机发送字符串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()
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、换行符等)来分隔它们
请参阅以获取另一种解决方案。您是真正发送
String1='{a:1,b:2}'
还是只发送{a:1,b:2}
。考虑到你的结果,我希望是后者。您正在告诉服务器读取下一个1024字节的输入。因此,除非您发送的第一个内容正好是1024字节,数据将是一个字符串。或者检测字符串的独立部分,或者确保发送一个换行符,并在上面拆分。哦,好的,谢谢,是的,我正在发送一个尽可能重复的字符串