在python 2.7和3.6中,我们将套接字对象获取为:
<socket._socketobject object at 0x0000000008C5FA08>
在python 3.6中,我们得到的套接字对象为:
<socket.socket fd=1616, family=AddressFamily.AF_INET, type=SocketKind.SOCK_DGRAM, proto=0, laddr=('169.254.126.94', 6970)>
在python 2.7中,我们的代码运行得很好,但是在python 3.6中,它无法正常工作,并且似乎卡在了recvfrom()调用上。
该程序只是在recvfrom()调用中永久运行。
代码如下:
def receive_socket(self, receive_socket, server_address):
receive_server_addr = receive_socket.getsockname()
while True:
try:
print("Started--------------")
data, server = receive_socket.recvfrom(65565)
print("Receiving data-------------", data)
注意:此代码可在python 2.7中完美运行。