Python Socket

一、服务端

python 复制代码
from socket import *

def print_hi(name):
    print(f'Hi, {name}')
    # 允许所有ip连接
    IP = '0.0.0.0'
    # 端口
    PORT = 8003
    # 定义一次从socket缓冲区读入512个字节数据
    BUFFER_LEN = 1024
    # 实例化socket对象 listenSocket 用来监听的socket
    listenSocket = socket(AF_INET, SOCK_STREAM) #socket网络层使用ip协议和tcp协议
    # 绑定地址和端口
    listenSocket.bind((IP, PORT))
    # 处于监听状态
    listenSocket.listen(5) #5表示最多能接收5个等待连接的客户端
    print(f'服务端启动成功,在{PORT}端口等待客户端连接...')
    # dataSpcket 用来接收和发送数据的socket
    dataSocket, addr = listenSocket.accept()
    print('接受一个客户端连接:', addr)
    while True:
        try:
            # 尝试读取对方发送的消息
            recved = dataSocket.recv(BUFFER_LEN) #BUFLEN指定从接收缓冲里最多读取多少字节
            # 如果返回为空表示对方关闭了连接
            # 退出循环,结束消息收发
            if not recved:
                break
            # 读取的字节数据是bytes类型,需要解码为字符串
            info = recved.decode()
            print(f'服务端收到客服端发送的消息:{info}')
            #发送的数据类型必须是bytes,所以需要编码
            dataSocket.send(f'服务端接收到了消息 {info}'.encode())
        except Exception as r:
            print('发生异常程序终止,异常信息={%s}'%r)
            break
    dataSocket.close()
    listenSocket.close()

if __name__ == '__main__':
    print_hi('start...')

二、客户端

三、消息格式

消息边界

格式参考

相关推荐
Patrick在香港2 小时前
Claude 工具调用返回空:8 次失败里只有 1 次状态码不对,其余全带 200
爬虫·python·api·claude·香港
Web3&Basketball2 小时前
CRM Agent 后训练实战:3 倍更少错误
python·架构·大模型·agent·推理
AIFQuant3 小时前
ETF行情API接入踩坑记:从报错到跑通的七个问题
python·金融·区块链·etf·基金
GPU实战笔记5 小时前
云端 Python 开发:JupyterLab 还是 VS Code Remote-SSH?
python·vs code·jupyterlab·remote-ssh·远程开发
狗狗狗狗狗乐啊5 小时前
搭一个 AI 对话工作台 AChat:从 0 到可用的完整记录(一)
python·react.js·ai编程
白猫不黑6 小时前
Python实现简易Web弱口令爆破与防护方案
python·web安全·计算机·网络安全·黑客·信息安全·渗透测试
kuuailetianzi6 小时前
Python初识:定位、优势与发展历程
python
guoran_shini6 小时前
LLM微调-训练垂类问答模型
python·lora·sft
basketball6166 小时前
Python FastAPI 介绍以及常用方法
python·fastapi·vllm·ai infra
论文复现现场7 小时前
企业知识库 RAG 用什么模型便宜?GLM-5.3-Flash 长文本 API 实测
python·rag·企业知识库·大模型api·glm-5.3-flash