ChatGPT编程实现简易聊天工具

ChatGPT编程实现简易聊天工具

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

环境:Pycharm 2021

系统:Mac OS

向ChatGPT输入如下内容:

在这里插入图片描述

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

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

屏幕截图 2024-03-17 191829

Screenshot 2024-03-17 at 19.17.50

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

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

相关推荐

  1. netty+websocket实现简易聊天

    2024-03-18 09:28:04       32 阅读
  2. AIGC: 关于ChatGPT实现一个聊天机器人

    2024-03-18 09:28:04       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-18 09:28:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-18 09:28:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-18 09:28:04       82 阅读
  4. Python语言-面向对象

    2024-03-18 09:28:04       91 阅读

热门阅读

  1. Windows程序员用MAC:安装win双系统、wintogo和删除

    2024-03-18 09:28:04       44 阅读
  2. Python数据分析与可视化笔记一 机器学习概述

    2024-03-18 09:28:04       40 阅读
  3. Docker常用命令

    2024-03-18 09:28:04       38 阅读
  4. 私域流量运营的关键要素和基本步骤

    2024-03-18 09:28:04       39 阅读
  5. 实验11-2-5 链表拼接(PTA)

    2024-03-18 09:28:04       38 阅读
  6. fpga_图像处理

    2024-03-18 09:28:04       37 阅读
  7. Visual Studio 常用快捷键

    2024-03-18 09:28:04       40 阅读
  8. text-generation-webui大模型部署

    2024-03-18 09:28:04       44 阅读