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时代必将成为广大程序员的最有力的助手!快快去体验吧。

相关推荐
Easy_API6 小时前
2.8万亿参数,编程反超GPT-6 Astra:Kimi K3.1 Pro把开源模型推到了哪一步
大数据·人工智能·gpt·深度学习
GlobalInfo6 小时前
2026年机器人多指灵巧手市场分析报告——涵盖行业调查、趋势分析与发展前景
大数据·人工智能·microsoft·微服务·机器人
紧跟先前的步伐6 小时前
Go AI Agent 实战 24|工具系统工程化收尾与阶段验收
人工智能·ai·golang·1024程序员节
释厄6237 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
老金带你玩AI8 小时前
集万家所长,一键复制的Agent.md!
人工智能
ZhuoAIStage8 小时前
舞台工艺多专业审图提速:用 AI 智能体编排 A+B+C+G 四段读图流水线
人工智能·自动化·工作流编排·舞台工艺·审图智能体
小奶包他干奶奶8 小时前
AI学习——1、机器学习概念
人工智能·机器学习
展讯快报8 小时前
悬浮提词器免费App评估报告:说得AI的免费策略与可用性分析
人工智能
Yuzhiyuxia8 小时前
【AI Agent面试系列】AI Agent记忆机制知识点1
人工智能·面试·职场和发展
2601_965448878 小时前
AI视频制作:做系列历史人物视频音色不搭,AI 音色克隆的方法实测
人工智能·音视频