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

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

本文介绍如何使用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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。