为了账号安全,请及时绑定邮箱和手机立即绑定

windows下用Python进行select套接字实验时,返回的r_list问题。

windows下用Python进行select套接字实验时,返回的r_list问题。

慕码人8056858 2019-02-25 15:13:28
window下利用select验证套接字读写,但是select返回的r_list文件描述符集似乎是不变的,代码如下,求解答,谢谢相关代码接收端:import select,socket sk=socket.socket() sk.bind(("127.0.0.1",5002)) sk.listen(5) inputs=[sk] outputs=[]while True:     r_list,w_list,e_list=select.select(inputs,outputs,inputs,1)     print(r_list)     print("正在监听的端口数:%d"%len(inputs))    for sk_conn in r_list:        if sk_conn==sk:            conn,addr=sk.accept()             conn.recv(1024)             inputs.append(conn)             print(inputs)        else:             try:                 rec=sk_conn.recv(1024)            except Exception as ex:err            else:                 print("收到:"+str(rec,encoding="utf-8")发送端:import socket ck=socket.socket() ck.connect(("127.0.0.1",5002)) ck.sendall(bytes("hello",encoding="utf-8")) ck.close()你期待的结果是什么?实际看到的错误信息又是什么?发送端sendall一次后关闭,接收端r_list应该经历从0-1(sk)-2(sk,conn)-0,的过程,但是实际上r_list之后一直有1个文件描述符conn。这是为什么?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 668 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信