【发布时间】:2016-03-04 07:08:27
【问题描述】:
我正在使用套接字构建一个简单的服务器-客户端应用程序。现在,我试图让我的客户端仅在收到特定消息时打印到控制台(实际上,当它没有收到特定消息时),但由于某种原因,每隔一次我运行它时,它都会通过我的代码中的另一条语句确实不一致 - 有时它会正常工作,然后它会随机中断几次使用。
这是我客户端的代码:
def post_checker(client_socket):
response = client_socket.recv(1024)
#check if response is "NP" for a new post from another user
if response == "NP":
new_response = client_socket.recv(1024)
print new_response
else: #print original message being sent
print response
在主函数中调用 post_checker 时简单地称为“post_checker(client_socket)”正确打印。
这是与此相关的服务器代码
for sublist in user_list:
client_socket.send("NP")
client_socket.send(sublist[1] + " ")
其中 user_list 是一个嵌套列表,而 sublist[1] 是我希望在客户端打印出来的用户名。
这里发生了什么?
【问题讨论】:
-
您的套接字是如何设置的?您使用的是 UDP 还是 TCP?
-
@BrianCain TCP - socket.socket(socket.AF_INET,socket.SOCK_STREAM)