Python 中的 socket.close(fd)。'fd' 是什么意思?

我这里有这段代码:

import socket
socket.close()

我收到一条警告,指出 socket.close() 缺少“fd”参数。一般用法应该填什么整数,整数是什么意思?


当年话下
浏览 248回答 2
2回答

梦里花落0921

这里的 fd 是“文件描述符”,您必须知道如何处理文件描述符、文件描述符 fd(文件对象的 fileno() 方法返回的整数)并根据结果构建套接字对象。

摇曳的蔷薇

试图寻找一个明确的解释,但如果你陷入困境, rdas提到的答案可能是最好的选择。澄清一下,如果您创建一个名为 的新套接字my_socket,请尝试执行my_socket.close()。根据官方python 文档,尝试类似# Echo client programimport socketimport sys HOST = 'daring.cwi.nl'    # The remote host# you need to indicate the host name here# use# HOST = socket.gethostbyname("")# to use '0.0.0.0'PORT = 50007              # The same port as used by the servermy_socket = Nonefor res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC, socket.SOCK_STREAM):     af, socktype, proto, canonname, sa = res    try:         my_socket = socket.socket(af, socktype, proto)    except OSError as msg:         my_socket = None         continue     try:         my_socket.connect(sa)    except OSError as msg:         my_socket.close()         my_socket = None         continue     break在试图解决这个问题时,我还查看了这篇文章,其中很多内容与Socket Programming HOWTO文章中断开连接部分的信息相呼应。进一步查看套接字模块文档页面,似乎有一个部分fd作为参数包含在内,但另一部分没有......不确定这部分,所以其他人可以澄清一下吗?这里发生了什么?有关一般套接字的更多信息,请查看其他 SO 答案和有关套接字和文件描述符的快速幻灯片。我不知道这里的最佳解决方案,也不了解所有内容,所以如果我犯了错误或有更好的资源,请在下面评论!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python