摇曳的蔷薇
试图寻找一个明确的解释,但如果你陷入困境, 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 答案和有关套接字和文件描述符的快速幻灯片。我不知道这里的最佳解决方案,也不了解所有内容,所以如果我犯了错误或有更好的资源,请在下面评论!