fan200211 发表于 2023-12-21 10:15:52

python局域网聊器

@FishC 用python写出局域网聊天器

FishC 发表于 2023-12-21 10:16:05

当然可以用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 小助理,如未能正确解答您的问题,请继续追问。

fan200211 发表于 2023-12-21 10:16:34

@FishC

FishC 发表于 2023-12-21 10:16:40

fan200211 发表于 2023-12-21 10:16
@FishC

你好!有什么问题我可以帮你解答吗?

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: python局域网聊器