粉丝专版—更新版聊天小程序

这个程序比开源的稳定,画面也比较好,不过这个是粉丝专版,想要就关注我,废话少说,上代码

服务器:

import socket
import threading

# 创建一个socket对象
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server.bind(('127.0.0.1', 8888))
# 开始监听
server.listen(5)
print("服务器已启动,等待客户端连接...")

# 用于存储客户端连接
clients = []

def handle_client(client_socket):
    while True:
        try:
            # 接收客户端发送的消息
            msg = client_socket.recv(1024).decode('utf-8')
            # 将消息广播给所有已连接的客户端
            for client in clients:
                client.send(msg.encode('utf-8'))
        except Exception as e:
            print(f"客户端断开连接:{e}")
            clients.remove(client_socket)
            client_socket.close()
            break

while True:
    # 接受客户端连接
    client_socket, client_address = server.accept()
    print(f"客户端{client_address}已连接")
    clients.append(client_socket)
    # 为每个客户端创建一个新的线程来处理消息
    t = threading.Thread(target=handle_client, args=(client_socket,))
    t.start()

客户端:

import socket
import threading

# 创建一个socket对象
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
client.connect(('127.0.0.1', 8888))
print("已连接到服务器")

def receive_msg():
    while True:
        try:
            # 接收服务器广播的消息
            msg = client.recv(1024).decode('utf-8')
            print(msg)
        except Exception as e:
            print(f"与服务器断开连接:{e}")
            client.close()
            break

# 为接收消息创建一个新的线程
t = threading.Thread(target=receive_msg)
t.start()

while True:
    # 向服务器发送消息
    msg = input()
    client.send(msg.encode('utf-8'))

注意事项

  • 在运行客户端代码之前,请确保服务器端代码已经启动并正在监听客户端连接。
  • 由于这个聊天程序是基于TCP协议实现的,因此它是可靠的,可以保证消息的有序传输。 但是,如果网络不稳定,可能会导致部分消息丢失或延迟。 为了提高稳定性,可以考虑使用更高级的网络编程库,如Twisted或asyncio。

  • 15
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值