繁体   English   中英

为什么在python的阻止模式下未阻止recv函数被阻止

[英]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.

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