zoukankan      html  css  js  c++  java
  • python全栈脱产第32天------基于tcp协议通信的套接字、模拟ssh实现远程执行命令、粘包问题

    一、基于tcp协议通信的套接字

      服务端必须满足至少三点:

        1.绑定一个固定的ip和port

        2.对外能够一直提供服务,稳定运行

        3.能够支持并发

      服务端

    from socket import *

    server = socket(AF_INET, SOCK_STREAM)
    server.bind(('127.0.0.1', 8080))
    server.listen(5)

    conn, client_addr = server.accept()
    print(client_addr)

    # 通信循环
    while True:
    try:
    data = conn.recv(1024)
    if len(data) == 0:break # 针对linux系统
    print('-->收到客户端的消息: ',data)
    conn.send(data.upper())
    except ConnectionResetError:
    break

    conn.close()
    server.close()
      客户端
    from socket import *

    client = socket(AF_INET, SOCK_STREAM)
    client.connect(('127.0.0.1', 8080))

    # 通信循环
    while True:
    msg=input('>>: ').strip()
    client.send(msg.encode('utf-8'))
    data=client.recv(1024)
    print(data)

    client.close()

    二、粘包
      定义:tcp协议流式传输数据的方式导致的
      如何解决:接收端能够精确地收干净每个数据包没有任何残留

  • 相关阅读:
    红楼梦 + 写入 MySQL + MongoDB
    糗事百科 + 微信自动回复
    验证码处理
    IP 代理池
    Ajax工作原理
    php做APP接口开发,接口的安全性
    http与https区别
    mysql 索引优化
    php+ajax+jquery实现jsonp跨域
    SpringBoot中文乱码解决方案
  • 原文地址:https://www.cnblogs.com/zhouyi0316/p/9581159.html
Copyright © 2011-2022 走看看