[英]why isn't recv function blocked in blocking mode in python
我有一个套接字编程问题,花了很多时间来查找错误,但是没有找到。 有人可以帮我吗。
服务器代码:
import socket
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_socket.bind(("localhost",5001)
server_socket.listen(10)
client_socket, address = server_socket.accept()
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_socket.bind(("localhost",5001))
server_socket.listen(10)
client_socket, address = server_socket.accept()
while True:
temp = client_socket.recv(100)
print (len(temp))
print ("Recv isn't blocked")
client_socket.close()
客户代码:
import socket
import io
client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client_socket.connect(("localhost",5001))
print("send data finised")
当我运行程序时,尽管客户端没有向服务器发送任何内容,但是服务器上的recv()函数仍在运行,所以我不明白为什么,请帮助我。
因为您的客户端程序退出,套接字关闭了?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.