繁体   English   中英

使用Python中的套接字发送和接收信息

[英]Sending and Receiving information with Sockets in Python

我目前正在用python创建一个TCP套接字服务器。 服务器应该从特殊的连接客户端接收json形式的数据。 然后,服务器应将数据分发给所有连接的客户端。

我的问题是我能够从客户端接收数据并将其解压缩到不同的json对象中。 但是,每当我尝试向其余客户端分发(发送)相同的json数据时,它将无法正常工作。 但是,如果我发送的是伪数据,也就是不是从特定客户端接收到的数据,则它们的所有工作都应该像预期的那样进行。

因此,问题在于服务器的接收部分和发送部分不能一起工作。 我知道这是可能的,但那根本行不通。

如前所述,当我使用虚拟数据发送给所有客户端时,它可以工作。 它使我认为,即使它应该能够发送,也无法发送与接收到的相同的数据。

问题示例:

def run(self):
  while conn:
    while True:
      try:
        # The receiving part
        data = conn.recv(2048)
        data = json.loads(data)
        x = data.get("X")
        z = data.get("X")


        # The sending part
        # It is to mention that I am looping through all clients,
        # so sending to all clients is not the problem.
        with client_list:
          for c in CLIENTS:
            message = json.dumps({"Title": "Coords", "X": x, "Z": z})
            conn.sendall(coords.encode())
      except Exception:
        pass

我修好了它。 当我遍历所有连接的客户端时,我仍在使用conn发送。 不得不用c代替

暂无
暂无

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

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