Python:socket.recvfrom()为地址返回none

时间:2015-10-13 22:19:27

标签: python sockets

我正在尝试编写示例here的Python版本,但由于某种原因,我在客户端和服务器中每次调用socket.recvfrom(),address返回值是None。我唯一能想到的是,它可能与套接字是STREAM套接字这一事实有关,但是当我尝试将类型更改为socket.SOCK_DGRAM时,我在调用{{1}时遇到错误}}。我该如何解决这个问题?

socket.listen()

1 个答案:

答案 0 :(得分:3)

使用数据报套接字或流套接字。你正试图分裂差异。你想用哪个?如果需要基于连接的字节流协议,请使用流套接字。如果你想要一个无连接的数据报协议,请使用数据报套接字。

如果要使用流套接字,请不要使用recvfrom。它是基于连接的,唯一可以接收的是来自该特定连接的字节。

如果要使用数据报套接字,请不要使用listenaccept。由于它是无连接的,你既不能听也不能接受连接。