• Python中的socket模块


    Python网络编程离不开socket模块

    1. socket模块的简单使用,以开发一个简单的命令行工具为例,如下

      1.1 socket client 端代码

     1 # -*- coding:utf-8 -*-
     2 # Author:Wong Du
     3 
     4 import socket
     5 
     6 # 创建一个socket对象
     7 client = socket.socket()
     8 # 与服务器端建立连接
     9 client.connect( ('localhost', 9494) )
    10 
    11 
    12 while True:
    13     # 获取用户输入内容
    14     cli_send = input(">>: ").strip()
    15     # 判断用户输入是否为空
    16     if len(cli_send) == 0:
    17         continue
    18 
    19     # 给服务器端发送数据,必须为bytes类型
    20     client.send(cli_send.encode(encoding="utf-8"))
    21 
    22     # 接收服务器端返回的数据, 102400为接收数据的大小
    23     data = client.recv(102400)
    24     # 查看接收到的数据
    25     print(data.decode())
    26 
    27 # 关闭连接
    28 client.close()

      1.2 socket server 端代码

    # -*- coding:utf-8 -*-
    # Author:Wong Du
    
    import os
    import socket
    
    # 创建一个socket连接
    server = socket.socket()
    # 绑定相应的IP和端口号
    server.bind( ('localhost', 9494) )
    # 开始监听, 5为监听最大连接数
    server.listen(5)
    print("我要开始监听了~~")
    # 等待请求连接,卡住;conn为连接对象,addr为连接身份
    print("正在等待客户端请求连接~~")
    conn, addr = server.accept()
    print("接收到客户端连接,身份是: ", addr)
    
    while True:
        # 接收客户端发来的命令,1024为接收数据的大小
        data = conn.recv(1024)
        # 执行命令并接收命令返回结果
        res = os.popen(data.decode()).read()
        # 如命令无返回结果
        if not res:
            res = 'Invalid command..'
    
        # 将命令返回结果发给客户端,数据必须是bytes类型
        conn.send(res.encode(encoding='utf-8'))
    
    
    # 关闭连接
    server.close()
  • 相关阅读:
    身份证验证(c#和js)
    获取焦点问题
    关于加载设计器遇到一个或多个错误问题的解决方案
    关于如何使用自定义的结束消息循环的方式 (转载)
    多种重要源码下载
    关于线程同步(转载)
    ArrayList的使用技巧
    一些所谓有利于家庭生活的优点
    080801 30℃
    080731 31℃
  • 原文地址:https://www.cnblogs.com/Caiyundo/p/9481970.html
Copyright © 2020-2023  润新知