[英]Cannot send and receive udp message in same program
我可以在單獨的程序中發送和接收UDP消息,但不能在一個程序中執行相同的任務。
import socket
UDP_IP = "192.168.1.178"
UDP_PORT = 8888
msg = 'test'
print "UDP target IP: ", UDP_IP
print "UDP target PORT: ", UDP_PORT
print "Message: ", msg
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(msg, (UDP_IP, UDP_PORT))
UDP_IP2 = "192.168.1.198"
sock.bind((UDP_IP2, UDP_PORT))
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print "received message:", data
使用此程序,我可以發送UDP消息,但是,我無法從另一台計算機接收任何消息。
我究竟做錯了什么?
提前致謝,
的Mikkel
在您的示例中,您嘗試在發送后綁定套接字地址,這是怎么回事。 地址只能在進行任何數據傳輸之前綁定到套接字。
如果沒有顯式綁定,則OS會在首次.send()/.recv()
在[ .send()/.recv()
]范圍內設置任何可用(未使用)端口號。
接下來,套接字只能綁定到單個IP(特殊情況'0.0.0.0'除外,這意味着“所有主機的接口”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.