zoukankan      html  css  js  c++  java
  • 基于TCP 协议的socket 简单通信

    DNS 服务器:域名解析

    socket 套接字 :

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

    为什么存在 socket 抽象层?
    如果直接与操作系统数据交互非常的麻烦,繁琐,socket 对这些繁琐的操作高度的封装,简化

    socket 在 Python 中就是一个模块

    基于 TCP 协议的 socket 的简单通信

    serve

    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()
    

    client

    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()
    
  • 相关阅读:
    Codeforces 878A
    Codeforces 873B-Balanced Substring
    codeforces 868C
    51nod 1402 最大值(贪心)
    最小正子段和 贪心
    codeforces 819B
    Codeforces 785D
    Codeforces 864E
    863D
    UVA 1380 A Scheduling Problem
  • 原文地址:https://www.cnblogs.com/hualibokeyuan/p/11355009.html
Copyright © 2011-2022 走看看