使用python2.X(适用于Linux(++)和Windows(+)) 我正在尝试创建一个python客户端,以收听地址和端口。 消息由特定地址和特定端口上的应用程序发送,但我不知道它是如何编写的。我确定它是功能性的,它使用UDP protocole。
所以,我写了这段代码来接收消息:
import socket
#---socket creation
connexion = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#---Bind
try:
connexion.bind(('', 10015))
except socket.error:
print "connexion failed"
connexion.close()
sys.exit()
#---testing
while 1:
data, addr = connexion.recvfrom(1024)
print "messages : ", data
此时,运行它没有错误,但代码在此行停止:
data, addr = connexion.recvfrom(1024)
没有任何反应......我认为我没有连接,也无法接收消息,但我不知道为什么。 我试图改变地址:'192.168.X.X',但它是一样的。
如果有人能帮助我,那就太好了。我为什么python不太舒服...... PS:对不起我的英语。
答案 0 :(得分:1)
我发现了我的问题。我更改了IP地址(在文档中,它是192.168。 00 8. 0 15;我尝试了像正常地址(192.168.8.15)那样的零和我收到了我的留言
我也改变了代码的结构:(不知道它是否有影响)我把我的"尝试:[...]除了:[...]"在线
data, addr = connexion.recvfrom(1024)
而不是行:
connexion.bind(('', 10015))
感谢您的帮助;)
答案 1 :(得分:0)
你的代码一切都很好。您可以使用以下Python代码段验证它是否有效:
import socket
connexion = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
connexion.sendto("sending data via udp", ("localhost", 10015))
如果未显示使用此代码段发送的消息,请检查防火墙。要调查您的其他应用程序是否(或者是什么)实际生成尝试使用tcpdump或wireshark。