假设我有一个套接字。 这两行代码有什么区别?
第1行:
os.read(some_socket.fileno(), 1024)
第2行:
some_socket.recv(1024)
除了第一个不能在Windows上工作的事实之外。 换句话说,我可以用第二行代替第一行吗? 我有一个没有经过真正的Windowstesting的代码库,这就造成了麻烦。
第1行使用下划线文件描述符来读取套接字,因此它是平台相关的。 使用第二行,因为它是一个便携式,多平台的方式来完成同样的事情。
强制性的:如果你认真对待任何事情,最好避免处理低级套接字。 他们很难得到正确的,似乎事情正在工作,但有很多细节。 这些细节已经在许多网络框架中解决了,没有理由重新发明。 我建议扭曲 ,这是相当不错的。