簡體   English   中英

無法在同一程序中發送和接收udp消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM