我有一个程序作为由本地主机连接的服务器-客户端。我使用socket
在服务器和客户端之间发送消息。客户端第一次发送带有请求的消息时,它可以正常工作。问题是当我发送第二个请求时,服务器未收到第二条消息。问题不在函数中,因为我尝试了几种。我不知道我是否做了一些事情来解决这个问题,因为我不记得我是否曾经提出过多个请求(尽管我认为我已经提出了)。
我在服务器和客户端之间发送消息的方式如下:
客户
# In my init I define self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
request = {'request': 'a_request', 'parameters': (param1, param2)}
message = json.dumps(request).encode('UTF-8')
self.sock.sendall(message)
服务器
# In my __init__
# self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# self.sock.bind((DEFAULT_HOST, DEFAULT_PORT))
# self.sock.listen()
# self.methods is a dictionary where the key is the name of the function
# and the value is the function
self.sock.recv(1024)
data = json.loads(data)
self.methods[data['request']](*data['parameters'])
我想强调一点,该代码在我第一次发送消息时有效。
有帮助吗?