网易首页 > 网易号 > 正文 申请入驻

Python:简易的 TCP + SSL 服务端与客户端示例

0
分享至

下面是一个完整的 TCP + SSL 服务端与客户端示例,适用于 Python 3,使用 socket 模块和 ssl 模块,常用于实现安全通信。

一、生成 SSL 证书和私钥

打开命令行(终端),输入以下命令生成自签名证书(有效期 365 天)。

openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key

按照提示填写(可以直接回车),将生成两个文件:

server.crt:服务器端证书

server.key:服务器私钥

这两个文件需与服务端脚本放在同一目录下。

提示:

要在系统中事先安装 OpenSSL。

Windows 用户可通过 Git Bash 或安装 OpenSSL for Windows。

https://slproweb.com/products/Win32OpenSSL.html

二、TCP + SSL 服务端(server_tcp_ssl.py)

import socket
import ssl

HOST = '127.0.0.1'
PORT = 8888

# 创建 TCP socket
server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_sock.bind((HOST, PORT))
server_sock.listen(1)
print("等待客户端连接...")

# 加载证书和密钥
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(certfile='server.crt', keyfile='server.key')

# 包装 socket
with context.wrap_socket(server_sock, server_side=True) as ssock:
    conn, addr = ssock.accept()
    print("客户端已连接:", addr)

    try:
        while True:
            data = conn.recv(1024)
            if not data:
                break
            print("收到消息:", data.decode('utf-8'))
            reply = input("回复客户端:")
            conn.sendall(reply.encode('utf-8'))
    except Exception as e:
        print("通信异常:", e)
    finally:
        conn.close()

三、TCP + SSL 客户端(client_tcp_ssl.py)

import socket
import ssl

HOST = '127.0.0.1'
PORT = 8888

context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE  # 忽略证书验证(测试用)

try:
    with socket.create_connection((HOST, PORT)) as sock:
        with context.wrap_socket(sock, server_hostname=HOST) as ssock:
            print("已连接服务器,可发送消息(输入 q 退出)")

            while True:
                msg = input("你说:")
                if msg.lower() == 'q':
                    break
                ssock.sendall(msg.encode('utf-8'))
                reply = ssock.recv(1024).decode('utf-8')
                print("服务器回应:", reply)

except Exception as e:
    print("连接异常:", e)

◆ ◆

使用说明

1、先运行服务端,建议在命令行中运行。

python server_tcp_ssl.py

确保服务端所在端口未被防火墙拦截。

2、再运行客户端(client_tcp_ssl.py)。可在 Python 编辑器中运行。

如遇 UnicodeDecodeError,请确认服务端与客户端使用统一编码(UTF-8)。

3、客户端或服务端输入文字后回车,对方会回应。

4、在客户端输入 q 键即可退出。

点赞有美意,赞赏是鼓励

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
叶绍芳已任江苏省委研究室主任

叶绍芳已任江苏省委研究室主任

起喜电影
2026-02-15 13:24:51
四连冠没了!麦克朗为何不参加扣篮大赛?

四连冠没了!麦克朗为何不参加扣篮大赛?

篮球实录
2026-02-15 17:52:25
年薪5400万,又一次赛季报销!交易彻底失败,你也应该退役了

年薪5400万,又一次赛季报销!交易彻底失败,你也应该退役了

篮球扫地僧
2026-02-09 23:23:15
辛弃疾为什么不被南宋重用?说出来你可能不信,因为他杀人如草芥

辛弃疾为什么不被南宋重用?说出来你可能不信,因为他杀人如草芥

史之韵
2026-02-11 15:10:49
俄总参谋长格拉西莫夫宣布,俄军 2 月攻占了乌克兰东部12个村庄

俄总参谋长格拉西莫夫宣布,俄军 2 月攻占了乌克兰东部12个村庄

咣当地球
2026-02-15 20:07:31
拼多多为什么赢?蔡崇信:因为阿里忘了本!

拼多多为什么赢?蔡崇信:因为阿里忘了本!

达文西看世界
2026-02-14 19:18:33
十年前,桑兰能成功索要18亿美金的赔偿,如今想要二胎却很困难?

十年前,桑兰能成功索要18亿美金的赔偿,如今想要二胎却很困难?

北有南栀
2026-02-07 18:05:03
“大傻”去世15年后,儿子入狱孙子身亡,王晶曝他旧事:是狠角色

“大傻”去世15年后,儿子入狱孙子身亡,王晶曝他旧事:是狠角色

妙知
2026-01-22 16:41:19
许亚军24岁儿子许何被中戏领导自首风波牵连

许亚军24岁儿子许何被中戏领导自首风波牵连

念得小柔
2026-02-14 12:23:48
沈晓明看望慰问驻省委大院执勤武警

沈晓明看望慰问驻省委大院执勤武警

王姐懒人家常菜
2026-02-15 20:08:33
周总理当了27年总理,有四人先后担任第一副总理

周总理当了27年总理,有四人先后担任第一副总理

文史茶馆2020
2025-12-28 11:15:51
中国空军从俄乌冲突中吸取经验:歼20决不能再打火箭弹了!

中国空军从俄乌冲突中吸取经验:歼20决不能再打火箭弹了!

掉了颗大白兔糖
2026-02-15 15:00:15
南方某大院:全面坍塌!

南方某大院:全面坍塌!

黯泉
2026-02-14 22:34:58
宋佳和杨幂站在C位,姚安娜默默站角落,却意外成为全场焦点

宋佳和杨幂站在C位,姚安娜默默站角落,却意外成为全场焦点

无心小姐姐
2026-02-14 09:10:23
颖儿邀请团队人吃火锅戴头套,却意外见证了她与付辛博的幸福

颖儿邀请团队人吃火锅戴头套,却意外见证了她与付辛博的幸福

一抹宁静
2026-02-14 12:16:16
夫妻开小炒店8年还清债务 今年“挺直腰杆”回老家过年

夫妻开小炒店8年还清债务 今年“挺直腰杆”回老家过年

红星新闻
2026-02-14 15:41:10
女同事问这衣服咋样?该怎么回答?

女同事问这衣服咋样?该怎么回答?

太急张三疯
2026-02-15 17:58:10
东方卫视引进《成长的烦恼》,大年初一开播

东方卫视引进《成长的烦恼》,大年初一开播

北青网-北京青年报
2026-02-14 12:18:03
汪小菲带玥儿麻六记吃饭,玥儿露正脸长发披肩与妈妈气质长相神似

汪小菲带玥儿麻六记吃饭,玥儿露正脸长发披肩与妈妈气质长相神似

手工制作阿歼
2026-02-03 02:12:57
总的来说,DeepSeek的历史使命已然落幕!

总的来说,DeepSeek的历史使命已然落幕!

达文西看世界
2026-02-14 19:31:04
2026-02-15 22:23:00
MediaTea
MediaTea
专业的数字媒体、新媒体技术
1755文章数 74关注度
往期回顾 全部

科技要闻

发春节红包的大厂都被约谈了

头条要闻

小米YU7刚交付20分钟传出一声巨响 车主看到裂痕崩溃

头条要闻

小米YU7刚交付20分钟传出一声巨响 车主看到裂痕崩溃

体育要闻

最戏剧性的花滑男单,冠军为什么是他?

娱乐要闻

河南春晚被骂上热搜!大量广告满屏AI

财经要闻

谁在掌控你的胃?起底百亿"飘香剂"江湖

汽车要闻

奔驰中国换帅:段建军离任,李德思接棒

态度原创

教育
时尚
旅游
家居
本地

教育要闻

小升初附加题,几乎全军覆没,求面积

多巴胺失宠了?过年这样穿彩色时髦又减龄

旅游要闻

春节假期首日,北京市属公园接待游客20.95万人次

家居要闻

中古雅韵 乐韵伴日常

本地新闻

春花齐放2026:《骏马奔腾迎新岁》

无障碍浏览 进入关怀版