• python3 tcp黏包情况二


    发送数据时间间隔很短,数据也很小,会合到一起,产生粘包。

    # TCP黏包现象_server.py
    import socket
    import time
    
    
    sk = socket.socket()
    sk.bind(("127.0.0.1", 8889))
    sk.listen()
    conn, address = sk.accept()
    time.sleep(10)  # 先让程序睡10秒,目的是制造黏包机会
    msg = conn.recv(1024)  # 这里很容易的就会产生黏包,客户端第一次和第二次发送的消息数据,会黏在一起。
    print("来自客户端的消息:", msg.decode("utf-8"))
    send_msg = input(">>>:").strip()
    conn.send(send_msg.encode("utf-8"))
    # TCP黏包现象_client.py
    import socket
    
    
    sk = socket.socket()
    sk.connect(("127.0.0.1", 8889))
    send_msg = input(">>>:").strip()
    sk.send(send_msg.encode("utf-8"))  # 客户端第一次发送消息给服务端
    send_msg = input(">>>:").strip()
    sk.send(send_msg.encode("utf-8"))  # 客户端第二次发送消息给服务端
    recv_msg = sk.recv(1024)
    print("来自服务端的消息:", recv_msg.decode("utf-8"))

    注意:

      1、先启动服务端,再启动客户端。

      2、根据程序写的谁先发送谁先接收的顺序,上述程序是,客户端先连续发送两个消息,服务端会收到黏包后的数据。

  • 相关阅读:
    你可能不知道的Linux/GNU bash sort多列排序功能
    设置字间距
    设置为灰度图
    点击短信中的url打开某个应用
    AchartEngine绘图引擎
    表格类似Excel
    自定义圆环progressbar
    高低版本方法兼容
    读取并创建excel文件(.xls)
    在android studio中导入github下载的工程
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/10928348.html
Copyright © 2020-2023  润新知