zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    jQueryEasyUi行编辑打造增删改查
    css样式DEMO
    jqueryEasyui常用代码
    Jquery easyui tree 一些常见操作
    EasyUI项目中的自定义JS
    easyui里弹窗的两种表现形式
    EasyUI扩展方法
    JS-easyui 扩展easyui.datagrid,添加数据loading遮罩效果代码
    Being a Hero (hdu 3251 最小割 好题)
    AWS携手上海嘉定政府推出首个联合孵化器 为创业公司拓展AWS云服务可用资源
  • 原文地址:https://www.cnblogs.com/qq1207501666/p/6702843.html
Copyright © 2011-2022 走看看