• Python模拟服务端


    本机服务端

    import socket
    
    # 获取到socket
    sk = socket.socket()
    
    # 获取到地址  ip 和 端口号
    address = ('127.0.0.1', 8001)
    
    # 绑定 地址
    sk.bind(address)
    
    # 设置 client端的 连接、排队 人数
    sk.listen(3)
    
    print('server waiting...')
    
    while True:
        # 阻塞  等待 client连接server
        conn, address = sk.accept()
        print(address)
    
    # 发送数据到client端
        while True:
            # 接收 client端的 数据
            client_data = conn.recv(1024)
            print(str(client_data, "utf8"))
    
            if not client_data: break
    
            inp = input('>>>')
            conn.send(bytes(inp, encoding="utf-8"))
    # conn.sendall(bytes('服务器关闭', encoding="utf-8"))
    
    conn.close()  # 该客户关闭
    # sk.close()  # 服务器关闭 , 此通道不会关闭

    跨电脑服务端

    import subprocess
    import socket
    
    # 获取到socket
    sk = socket.socket()
    
    # 获取到地址  ip 和 端口号
    address = ('127.0.0.1', 8001)
    
    # 绑定 地址
    sk.bind(address)
    
    # 设置 client端的 连接、排队 人数
    sk.listen(3)
    
    print('server waiting...')
    
    while True:
        # 阻塞  等待 client连接server
        conn, address = sk.accept()
        print(address)
    
        # 发送数据到client端
        while True:
            # 接收 client端的 数据
            try:
                client_data = conn.recv(1024)
            except Exception as e:
                break
    
            # 判断数据是够是空
            if not client_data: break
    
            print(str(client_data, "utf8"))
    
            # 获取到结果
            obj = subprocess.Popen(str(client_data, 'utf8'), shell=True, stdout=subprocess.PIPE)
            # 将结果读取出来
            cmd_result = obj.stdout.read()
    
            result_len = bytes(str(len(cmd_result)), 'utf8')
            conn.sendall(result_len)  # 粘包问题
            conn.recv(1024) # 隔断,解决粘包方法
            # 发送数据到client端
            conn.sendall(cmd_result)
    
    conn.close()  # 该客户关闭
    # sk.close()  # 服务器关闭 , 此通道不会关闭
    做自己的太阳,成为别人的光!
  • 相关阅读:
    安装完QQ必须要删除掉的几个恐怖文件
    dede实战系统:更换成kindEditor编辑器
    PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空的问题
    DEDECMS图片集上传图片出错302的解决办法
    dedecms安装完成后登录后台出现空白
    OFV.msi是什么 为什么更新时无法安装
    CentOS 挂载NTFS分区的两种方法
    centos使用yum安装gcc
    NetBeans菜单栏字体太小了
    注入漏洞页
  • 原文地址:https://www.cnblogs.com/botaoli/p/15311236.html
Copyright © 2020-2023  润新知