• Python3-socket模块-低级网络接口


    Python3中的socket模块提供了对访问套接字(socket)的接口

      socket可以理解为是一个管道,通过这个管道可以使两个不同的程序通过网络进行通信,在Python中的scoket()函数可以返回socket对象,这个对象的方法实现了不同的套接字系统调用

      服务端:

        1.使用socket()函数返回一个socket对象 sk_server

        2.将sk_server绑定到socket协议簇中的一个协议,例如: socket.AF_INET(IPv4),IPv4也是socket默认的协议

        3.开启服务监听客户端的连接请求

        4.接受连接

        5.收发数据

        6.关闭连接

      客户端:

        1.使用socket()函数返回一个socket对象 sk_client

        2.发送连接请求到 sk_server

        3.收发消息

        4.关闭连接

    import socket
    
    HOST = "127.0.0.1"    # IP地址
    PORT = 55555          # 端口号
    with socket.socket() as sk_server:
        sk_server.bind((HOST, PORT,))     # 将socket绑定到IP地址和端口号
        sk_server.listen(3)               # 启用服务以监听连接,参数是一个数字,表示最大连接数
        while True:
            conn, address = sk_server.accept()    # 接收一个连接,返回的是一个元组
            with conn:
                while True:
                    try:
                        data = conn.recv(1024)                  # 接受这个连接发送过来的数据
                        print(str(data, "utf-8"))               # 展示数据
                        conn.send(bytes("got it!", "utf-8"))    # 向这个连接发送响应消息
                        # if not data:                          # Linux recv()无数据则为空
                        #     break
                    except WindowsError as ex:                    # Windows recv()无数据则抛异常
                        # print(ex)
                        break
    socket服务端

    import socket
    
    HOST = "127.0.0.1"                       # 远程地址,因为是一台机器上测试,都写的本机
    PORT = 55555
    
    while True:
        with socket.socket() as sk_client:
            sk_client.connect((HOST, PORT, ))       # 连接服务器端的socket
            cont = input(">>>")
            sk_client.send(bytes(cont, "utf-8"))    # 发送数据
            response = sk_client.recv(1024)         # 接受数据
            print(str(response, "utf-8"))
    socket客户端

    参考资料

      http://python.usyiyi.cn/translate/python_352/library/socket.html

  • 相关阅读:
    myelipse与idea的javaweb项目创建
    入站规则和出站规则设置
    NAT技术基本原理与应用
    如何将sqlserver数据中的数据导出到服务器
    如何将SqlServer中表结构以及表数据全部导出
    国外服务器--新加坡服务器
    windows server2008 创建新用户 远程桌面连接 和 多用户登录问题
    程序员应该关注的国外IT网站
    IDEA创建普通java和web项目教程
    IIS Express 通过IP访问的方法和坑
  • 原文地址:https://www.cnblogs.com/qq1207501666/p/6702843.html
Copyright © 2020-2023  润新知