ChatGPT编程实现简易聊天工具

简介: ChatGPT编程实现简易聊天工具

ChatGPT编程实现简易聊天工具
今天借助[[小蜜蜂]ChatGPT练习socket编程,实现一个简易聊天工具软件。

环境:Pycharm 2021

系统:Mac OS

向ChatGPT输入如下内容:

image.png

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

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

服务器端代码:

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()

客户端代码:

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

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聊天。

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

image.png
image.png

相关文章
|
6月前
|
人工智能 搜索推荐 大数据
GitHub Copilot Enterprise登场,或将掀起编程界的ChatGPT革命!
【2月更文挑战第13天】GitHub Copilot Enterprise登场,或将掀起编程界的ChatGPT革命!
82 2
GitHub Copilot Enterprise登场,或将掀起编程界的ChatGPT革命!
|
6月前
|
人工智能 IDE Linux
chatgpt的ai编程工具
该内容是关于两个chatgpt的ai编程工具的安装和使用说明。Copilot的下载步骤包括在IDE的设置中搜索并安装插件,然后重启IDE并登录GitHub账户。使用时,通过写注释触发建议,用快捷键选择建议。启用或禁用Copilot可通过底部状态图标。另一个工具是Alibaba Cloud AI Coding Assistant (Cosy),同样在IDE的插件市场下载安装后重启。其详细使用方法建议参考官网。
299 0
|
6月前
|
人工智能 机器人 Go
飞书+ChatGPT搭建智能AI助手,无公网ip实现公网访问飞书聊天界面
飞书+ChatGPT搭建智能AI助手,无公网ip实现公网访问飞书聊天界面
658 0
|
1月前
|
人工智能 计算机视觉 Python
ChatGPT编程省钱、方便小示例——实现PDF转成PNG文件
ChatGPT编程省钱、方便小示例——实现PDF转成PNG文件
|
2月前
|
数据采集 自然语言处理 监控
大模型微调使GPT3成为了可以聊天发布指令的ChatGPT
正是通过微调大模型使得GPT3成为了可以聊天发布指令的ChatGPT。聊天大模型在通用大模型的基础上加一层微调就实现人人能用的大模型,使得通用大模型的能力被更多人使用和了解。
54 4
大模型微调使GPT3成为了可以聊天发布指令的ChatGPT
|
1月前
|
人工智能 API iOS开发
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
|
1月前
|
人工智能 iOS开发 MacOS
ChatGPT编程—实现小工具软件(批量替换文本、批量处理图像文件)
ChatGPT编程—实现小工具软件(批量替换文本、批量处理图像文件)
|
1月前
|
人工智能 iOS开发 MacOS
ChatGPT编程—实现小工具软件(文件查找和筛选)
ChatGPT编程—实现小工具软件(文件查找和筛选)
|
6月前
|
设计模式 存储 人工智能
如何利用 ChatGPT 提升编程技能
如何利用 ChatGPT 提升编程技能
|
6月前
|
人工智能 iOS开发 MacOS
[译][AI OpenAI] 引入 GPT-4o 及更多工具至免费版 ChatGPT 用户
我们推出了最新的旗舰模型 GPT-4o,并为免费版 ChatGPT 用户提供更多功能,包括更快的速度、改进的文本、语音和视觉能力,以及新的桌面应用程序和简化的界面。
[译][AI OpenAI] 引入 GPT-4o 及更多工具至免费版 ChatGPT 用户