当前位置:   article > 正文

ChatGPT编程实现简易聊天工具

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

客户端代码:

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

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

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

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

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

屏幕截图 2024-03-17 191829

Screenshot 2024-03-17 at 19.17.50

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/291708
推荐阅读
相关标签
  

闽ICP备14008679号