python网络粘包演示

"""
粘包原因
    因为tcp以字节流方式传输,没有消息边界,多次发送的消息堆积到缓冲区后可能会被一次性接收,就发生了粘包
粘包影响
    如果发送的内容具有独立的含义,粘包后解析就会受到影响

演示
    根据发送包和接收包时间的差异,来演示粘包
"""
import socket
import time

# 创建socket服务端对象
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置端口可以立即重用
soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 绑定服务器地址和端口号
soc.bind(("127.0.0.1", 3333))
# 开启服务器监听
soc.listen(5)
print("wait connect")
# 接受客户端链接
client, caddr = soc.accept()
print("connect success ip", caddr)
while True:
    time.sleep(1)
    # 接收信息
    buff_byte = client.recv(1024)
    # 打印接收到的信息
    print("Client:", buff_byte.decode())
    if not buff_byte:
        break
soc.close()

"""
==============================发送端===========================
"""
import socket
from time import *

# 创建客户端socket对象
csoc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 服务端地址
server_addr = ('127.0.0.1', 3333)
# 连接服务器端地址
csoc.connect(server_addr)
while True:
    sleep(0.5)
    # 给服务端发送消息
    csoc.send(b"meg>>")
# 关闭套接字


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值