zoukankan      html  css  js  c++  java
  • 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、根据程序写的谁先发送谁先接收的顺序,上述程序是,客户端先连续发送两个消息,服务端会收到黏包后的数据。

  • 相关阅读:
    Java8常用新特性实践
    Presto集群部署
    Exception: Unexpected End Of File(crontab)
    centos6环境下使用yum安装Ambari
    pyspark进行词频统计并返回topN
    七行代码开始flask
    hibernate初步4
    java四大域总结
    servlet中的转发和重定向问题
    一个web页面的访问的过程
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/10928348.html
Copyright © 2011-2022 走看看