ChatGPT编程实现简易聊天工具

ChatGPT编程实现简易聊天工具

今天借助[[小蜜蜂]][https://zglg.work]网站的ChatGPT练习socket编程,实现一个简易聊天工具软件。

环境:Pycharm 2021

系统:Mac OS

向ChatGPT输入如下内容:

ChatGPT收到后,根据返回结果并进行部分修改,如下所示:

下面是一个简易的客户端-服务器聊天程序的示例代码,使用 Python 的 socket 模块实现:

服务器端代码:

python 复制代码
import socket
import threading

# 服务器端函数
def handle_client(client_socket, address):
    print(f"连接来自 {address}")

    while True:
        data = client_socket.recv(1024).decode('utf-8')
        if not data:
            break
        
        print(f"收到消息: {data}")

        response = input("回复消息: ")
        client_socket.send(response.encode('utf-8'))

    client_socket.close()

# 创建 socket 对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 设置服务器端IP地址和端口
host = '192.168.1.21'
port = 12345

# 绑定端口
server_socket.bind((host, port))

# 设置最大连接数
server_socket.listen(5)

print(f"服务器正在运行,监听地址为 {host}:{port}")

while True:
    client_socket, address = server_socket.accept()
    client_handler = threading.Thread(target=handle_client, args=(client_socket, address))
    client_handler.start()

客户端代码:

为了实现服务器断开后客户端自动断开连接,在客户端代码中添加一些逻辑来检测服务器是否已经关闭。一种常用的方法是通过捕获异常来处理连接错误。下面是一个更新过的客户端代码示例,其中包含了对服务器断开情况的检测和处理:

python 复制代码
import socket

# 创建socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 服务器的IP地址和端口号
server_ip = '192.168.1.21'
server_port = 12345

try:
    # 连接服务,指定服务器的IP地址和端口号
    client_socket.connect((server_ip, server_port))
    
    while True:
        message = input("发送消息: ")
        client_socket.send(message.encode('utf-8'))

        response = client_socket.recv(1024).decode('utf-8')
        print(f"收到回复: {response}")

except ConnectionRefusedError:
    print("连接被拒绝:服务器已关闭")
except ConnectionResetError:
    print("连接重置:服务器断开")
finally:
    client_socket.close()

在这个示例中,服务器会启动并监听来自客户端的连接。每当有新的客户端连接时,服务器会创建一个新线程来处理与该客户端的通信。客户端会连接到服务器,并可以通过输入消息进行简单的聊天。

请替换服务器代码中 '服务器的IP地址' 部分为实际的服务器 IP 地址,在客户端代码中也可以相应地修改。这样就可以在两个终端上运行服务器和客户端以开始简单的C-S聊天。

分别在服务器端(服务器端代码)和客户端(客户端代码)运行聊天程序。运行结果截图如下:

以上示例在[小蜜蜂AI网站][https://zglg.work]完成,欢迎注册体验。

无所不能的AI时代必将成为广大程序员的最有力的助手!快快去体验吧。

相关推荐
GEO-optimize14 小时前
2025年末GEO服务商推荐甄选:综合实力测评及优选指南
人工智能·搜索引擎·geo
Ven%14 小时前
【AI大模型算法工程师面试题解析与技术思考】
人工智能·python·算法
我很哇塞耶14 小时前
BOSS直聘3B超越Qwen3-32B,更多训练数据刷新小模型极限
人工智能·ai·大模型
趁你还年轻_14 小时前
超越对话:AI 智能体如何自主完成复杂任务?
人工智能
禾高网络14 小时前
互联网医院系统,互联网医院系统核心功能及技术
java·大数据·人工智能·小程序
AI营销实验室14 小时前
原圈科技AI CRM系统:数据闭环与可视化革新的行业突破
大数据·人工智能
AndrewHZ15 小时前
【复杂网络分析】什么是图神经网络?
人工智能·深度学习·神经网络·算法·图神经网络·复杂网络
2501_9414185515 小时前
腰果病害图像识别 Mask-RCNN HRNetV2P实现 炭疽病 锈病 健康叶片分类
人工智能·分类·数据挖掘
skywalk816315 小时前
使用Trae 自动编程:为小学生学汉语项目增加不同出版社教材的区分
服务器·前端·人工智能·trae
Deepoch15 小时前
仓储智能化新思路:以“渐进式升级”破解物流机器人改造难题
大数据·人工智能·机器人·物流·具身模型·deepoc·物流机器人