用Python写一个局域网通信软件
时间: 2024-03-06 17:26:26 浏览: 118
python 局域网聊天软件
4星 · 用户满意度95%
实现一个局域网通信软件可以使用Python的socket模块来实现。下面是一个简单的局域网通信软件的示例代码:
```python
import socket
import threading
# 创建一个服务器端
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('0.0.0.0', 8000))
server.listen(5)
# 客户端列表
clients = []
client_lock = threading.Lock()
# 服务器端处理客户端连接的函数
def handle_client_connection(client):
while True:
try:
data = client.recv(1024)
except:
# 客户端断开连接
with client_lock:
clients.remove(client)
break
if not data:
# 客户端断开连接
with client_lock:
clients.remove(client)
break
# 向所有客户端广播消息
with client_lock:
for c in clients:
try:
c.sendall(data)
except:
# 客户端断开连接
clients.remove(c)
continue
# 服务器端处理客户端连接的线程函数
def handle_client_thread():
while True:
client, address = server.accept()
with client_lock:
clients.append(client)
threading.Thread(target=handle_client_connection, args=(client,)).start()
# 启动服务器端处理客户端连接的线程
threading.Thread(target=handle_client_thread).start()
# 向所有客户端广播消息的函数
def broadcast_message(message):
with client_lock:
for c in clients:
try:
c.sendall(message)
except:
# 客户端断开连接
clients.remove(c)
continue
# 从命令行读取用户输入并向所有客户端广播消息
while True:
message = input()
broadcast_message(message.encode('utf-8'))
```
这个示例代码实现了一个简单的局域网聊天室,当有客户端连接到服务器时,服务器会开启一个新的线程来处理客户端连接。当有客户端发送消息时,服务器会将消息广播给所有连接到服务器的客户端。
阅读全文