socket UDP 广播收发
时间: 2023-08-22 11:08:25 浏览: 134
UDP 广播是一种用于在局域网中发送和接收数据的方式。在使用 UDP 广播进行收发之前,需要创建一个 UDP socket,并设置 socket 的选项,使其支持广播功能。
首先,创建一个 UDP socket:
```python
import socket
# 创建 UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
```
然后,设置 socket 选项,使其支持广播功能:
```python
# 设置 socket 选项,使其支持广播
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
```
接下来,可以使用 `sendto()` 方法发送广播数据:
```python
# 广播发送数据
message = "Hello, everyone!"
broadcast_address = '<broadcast>' # 广播地址
port = 12345 # 广播端口号
sock.sendto(message.encode(), (broadcast_address, port))
```
在接收方,需要绑定一个特定的 IP 地址和端口号,并使用 `recvfrom()` 方法接收广播数据:
```python
# 绑定 IP 地址和端口号
ip_address = '0.0.0.0' # 监听所有网络接口
port = 12345
sock.bind((ip_address, port))
# 接收广播数据
data, address = sock.recvfrom(1024)
print(f"Received message: {data.decode()} from {address}")
```
以上是使用 Python 的示例代码,你可以根据自己的需求进行修改和扩展。注意,在进行 UDP 广播时,需要确保目标主机和局域网支持 UDP 广播功能。
阅读全文