写一个程序可向多台设备发送数据
时间: 2024-09-10 20:09:07 浏览: 43
编写一个向多台设备发送数据的程序通常涉及到网络通信和多线程处理。这里我会给出一个简单的Python示例,使用socket库来实现向多台服务器广播数据。假设我们的数据是一个字符串,每台设备都有一个预设的IP地址和端口号。
```python
import socket
import threading
def send_data_to_device(ip, port, data):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((ip, port))
try:
sock.sendall(data.encode('utf-8'))
print(f"Data sent to {ip}:{port}")
except Exception as e:
print(f"Error sending data to {ip}:{port}: {str(e)}")
finally:
sock.close()
# 设备列表
devices = [
{"ip": "192.168.1.1", "port": 5000},
{"ip": "192.168.1.2", "port": 5001},
# 更多设备...
]
def broadcast(data):
threads = []
for device in devices:
thread = threading.Thread(target=send_data_to_device, args=(device['ip'], device['port'], data))
thread.start()
threads.append(thread)
# 等待所有线程完成
for thread in threads:
thread.join()
# 示例数据
data_to_send = "Hello from program"
broadcast(data_to_send)
```
这个脚本创建了一个单独的函数`send_data_to_device`用于连接到指定的设备并发送数据,然后在一个主函数`broadcast`中创建线程并发地向每个设备发送。注意这只是一个基础版本,实际应用中可能需要处理异常、错误检测和更复杂的网络配置。
阅读全文