Python基于Socket实现简易聊天程序详解

键盘旁的猫
键盘旁的猫
发布时间:2026-10-13| 2人浏览过
原创

本文介绍如何使用Python的Socket模块开发一个基于TCP协议的简易聊天程序。通过Server.py和Client.py两个脚本,演示了服务器与客户端的连接建立、数据收发及断开流程。尽管界面简陋,但该示例清晰展示了Socket通信的核心逻辑,适合Python初学者理解网络编程基础。

本文通过一个具体的Python示例,详细讲解如何利用Socket模块实现一个简单的聊天程序。内容旨在为读者提供可直接参考和学习的代码实践。

背景设定:SCIENCE和MOOD均为软件专业背景,他们对市面上常见的聊天软件感到厌倦,因此决定自主开发一款具备个性化功能且符合专业标准的简易聊天工具。正如其理念所言,“Talk is easy,try to code it”,他们希望通过编码实现这一想法。

核心技术:本程序基于socket模块实现。关于Socket的具体用法,可参考前文《Python Socket实现简单TCP Server/client功能》以获取更详细的理论支持。

开发语言:Python

架构说明:虽然Socket编程中通常区分服务器端和客户端角色,但在本聊天程序的逻辑中,双方地位平等,均作为客户端程序运行,彼此之间进行对等通信。

服务端代码:Server.py

import socket
host = socket.gethostname()
port = 12345
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((host,port))
s.listen(1)
sock,addr = s.accept()
print('Connection built')
info = sock.recv(1024).decode()
while info != 'exit':
  print('MOOD:'+info)
  send_mes = input()
  sock.send(send_mes.encode())
  if send_mes =='exit':
    break
  info = sock.recv(1024).decode()
sock.close()
s.close()

客户端代码:Client.py

import socket
s= socket.socket()
host = socket.gethostname()
port = 12345
s.connect((host,port))
print('Linked')
info = ''
while info != 'exit':
  print('SCIENCE:'+info)
  send_mes=input()
  s.send(send_mes.encode())
  if send_mes =='exit':
    break
  info = s.recv(1024).decode()
s.close()

运行效果截图如下:

诚然,该程序界面较为简陋,缺乏图形化交互及其他个性化功能。但这仅是一个基础示例,希望开发者能以此为基础继续努力,最终打造出符合个人需求的专属聊天软件。

如需进一步了解Python相关技术,建议查阅本站以下专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》以及《Python文件与目录操作技巧汇总》。

希望本文提供的代码示例和分析能对您的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 算法库。