服务器在第二个sendall之后没有响应

时间:2018-06-24 22:52:02

标签: python python-3.x sockets

我有一个程序作为由本地主机连接的服务器-客户端。我使用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'])

我想强调一点,该代码在我第一次发送消息时有效。

有帮助吗?

0 个答案:

没有答案