在Python3中,我创建了一个带有 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
以便向网络中的某个目标发送UDP。现在经典的方法是 s.sendto(my_data, (ip, port))
. 但我想把socket处理成一个io文件对象。因此,我通过以下方法创建了一个对象 f = s.makefile(mode='wb')
. 现在我可以用 f.write(my_data)
来发送数据。但是等一下 ... 我从来不需要指定IP和端口。不用说,数据没有到达目的地。用TCP没有问题,因为用 s.connect((ip, port))
我可以在创建文件对象之前指定ip和端口。
是否可以,如果可以,如何用套接字作为文件对象发送UDP?
好吧......当我在写这个问题的时候,我突然想到我可以尝试调用 s.connect((ip, port))
在UDP套接字上,虽然没有建立连接。Voilà它工作了。也许这能帮助某人。