我正在从服务器发送两个字符串,而我的主机将两个字符串都视为一个字符串.我怎么解决这个问题



我的服务器不断将字符串发送到我的主机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等(中的字符分开来完成。

请参阅此答案。

相关内容

  • 没有找到相关文章

最新更新