我应该关闭makefile的socket并且它是独立的原始套接字吗?

时间:2012-08-30 19:08:10

标签: python file sockets

Python docs说出来了;

  

socket。 makefile ([mode [,bufsize]])
返回关联的文件对象   与插座。 (文件对象在文件对象中描述。)   file对象引用套接字文件的dup()ped版本   描述符,因此文件对象和套接字对象可能会被关闭或   垃圾收集独立。

这是否意味着我必须像这样关闭套接字和文件?

conn = socket.create_connection((addr,port))
myfile = conn.makefile()
myfile.close()
conn.close()

或者关闭一个就足够了?如果是这样,我关闭哪一个以及哪一个我不关心?

1 个答案:

答案 0 :(得分:2)

正如文档所说,两个对象都是独立的。仅当与之关联的所有文件描述符都已关闭时,才会关闭基础连接。你必须关闭它们。使用with语句来管理此类资源。