当然可以用Python来写一个局域网聊天器!以下是一个简单的示例代码:
- import socket
- import threading
- def send_message(sock):
- while True:
- message = input()
- sock.sendall(message.encode())
- def receive_message(sock):
- while True:
- data = sock.recv(1024)
- print("收到消息:", data.decode())
- def main():
- # 创建套接字
- server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- server_socket.bind(('localhost', 8888))
- server_socket.listen(5)
- print("服务器已启动,等待客户端连接...")
- # 接受客户端连接
- client_socket, addr = server_socket.accept()
- print("客户端已连接:", addr)
- # 创建发送消息的线程
- send_thread = threading.Thread(target=send_message, args=(client_socket,))
- send_thread.setDaemon(True)
- send_thread.start()
- # 创建接收消息的线程
- receive_thread = threading.Thread(target=receive_message, args=(client_socket,))
- receive_thread.setDaemon(True)
- receive_thread.start()
- while True:
- pass
- if __name__ == '__main__':
- main()
复制代码
这是一个基于TCP协议的简单的局域网聊天器。它创建了一个服务器套接字,监听本地主机上的指定端口号(这里使用8888)。当有客户端连接时,它会打印出客户端的地址,并创建两个线程来实现消息的发送和接收。
在`send_message`函数中,用户可以通过输入将消息发送给其他客户端。而在`receive_message`函数中,程序会一直监听来自客户端的消息,并在控制台上打印出来。
注意:该代码只是一个简单示例,可能并不适用于所有情况,比如它只能支持单个客户端连接。如果需要支持多个客户端同时连接和交流,需要对代码进行进一步的修改和改进。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。