Python基于Socket实现简易C/S聊天程序

Cora
Cora
发布时间:2026-10-11 | 2人浏览过
原创

本文介绍如何使用Python标准库socket模块构建一个基于TCP协议的简易聊天程序。通过服务端与客户端的交互代码,演示了IP绑定、端口监听、数据收发及异常处理等核心网络编程步骤。

程序架构与限制

该示例采用典型的C/S(客户端/服务端)架构,代码逻辑分为服务端监听与客户端连接两部分。目前实现的功能较为基础,存在以下限制:

  • 仅支持客户端与服务端交替发言(一问一答模式)。
  • 发送超过单次接收缓冲区大小的内容时,对方可能无法完整接收。

服务端实现

服务端主要负责绑定IP与端口,进入监听状态等待客户端连接。连接建立后,通过循环接收数据并打印,同时接收用户输入发送回客户端。代码中包含了对连接重置异常的捕获,以处理客户端断开的情况。

# 服务端核心逻辑
while True:
    print('等待连接...')
    sock, adr = server_socket.accept()
    while True:
        try:
            # 接受数据
            data = sock.recv(1024)
            print(adr[0] + '发来消息:', data.decode())
            # 发送数据
            send_msg = input("请输入发送内容>>").strip()
            sock.send(send_msg.encode('utf-8'))
        except ConnectionResetError as e:
            print('%s断开连接!' % adr[0])
            break
    # 关闭本次连接
    sock.close()
# 关闭socket
server_socket.close()

客户端实现

客户端代码指定了服务端的IP地址(示例中为 '192.168.31.207')和端口号(示例中为 8896)。连接成功后,通过循环接收用户输入并发送,随后接收服务端回复并打印。代码中增加了空输入判断,避免发送无效数据。

import socket

# 设置服务器ip和端口号
host_ip = '192.168.31.207'
port = 8896
client_socket = socket.socket()
client_socket.connect((host_ip, port))

while True:
    send_msg = input('请输入内容>>').strip()
    if send_msg == '':
        continue
    client_socket.send(send_msg.encode())
    recv_data = client_socket.recv(1024)
    print(host_ip + "回复:" + recv_data.decode())

client_socket.close()

总结

通过上述代码,我们实现了一个最基础的Socket通信模型。该程序展示了Python在网络编程中的简洁性,适用于理解TCP连接的生命周期及基本数据流控制。以上就是Python使用Socket实现简单聊天程序的详细内容,更多关于Python网络编程的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表