zoukankan      html  css  js  c++  java
  • day29——socket套接字(少量不全)

    day29

    socket套接字

    • socket是处于应用层与传输层之间的抽象层,他是一组操作起来非常简单的接口(接受数据)此接口接受数据之后,交由操作系统.

      为什么存在socket抽象层?

      如果直接与操作系统数据交互非常麻烦,繁琐,socket对这些繁琐的操作高度的封装,简化.

    • socket在python中就是一个模块.

    基于TCP协议的socket简单通信

    服务端
    import socket
    
    # 买电话
    phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)  # 默认基于TCP协议的socket
    
    # 绑定电话卡
    phone.bind(('192.168.14.198',8848))  # 绑定IP地址和端口
    
    # 开机监听
    phone.listen(5)
    print(111)
    
    # 等待连接
    conn, addr = phone.accept() # 阻塞
    print(conn,addr)
    
    from_client_data = conn.recv(1024)  # 至多接受1024个字节  阻塞
    print(f'来自客户端{addr[0]}的消息:{from_client_data.decode("utf-8")}')
    
    to_client_data = input('>>>')
    conn.send(to_client_data.encode('utf-8'))
    conn.close()
    phone.close()
    
    客户端
    import socket
    
    # 买电话
    phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)  # 默认基于TCP协议的socket
    
    # 拨号打电话
    phone.connect(('127.0.0.1',8848))
    data = input('请输入>>>')
    
    phone.send(data.encode('utf-8'))
    from_server_data = phone.recv(1024)
    print(f'来自服务端的消息:{from_server_data}')
    
    
    # 关闭电话
    phone.close()
    

    基于TCP协议的socket通信循环

  • 相关阅读:
    使用VS Code插件Graphviz Preview来画图
    Y1S002 xshell脚本编写示意
    Y1S001 ubuntu下samba安装配置以及使用vbs映射到驱动器
    Y1吐槽002 情绪
    Y1E001 HDI二阶板、三阶板
    Y1O001波分复用器
    2018-4-5-cadence skill
    2018-4-5-MEMS
    2018-4-5-硬件集成测试规程结构
    Cadence学习笔记
  • 原文地址:https://www.cnblogs.com/NiceSnake/p/11385833.html
Copyright © 2011-2022 走看看