zoukankan      html  css  js  c++  java
  • 网络编程

    通过socket,实现客户端发送命令,将服务端执行出的结果,反回到客户端,主要4个步骤:
    1、服务端返回数据;

    2、服务端返回数据的大小;

    3、客户端接收返回数据的大小;

    4、客户端按返回数据大小接收数据;

    一、客户端代码

    #客户端
    import socket
    client=socket.socket() #生成socket连接对象
    client.connect(("localhost",6969))
    while True:
    msg=input(">>>:")
    if not msg:
    continue
    client.send(msg.encode("utf-8")) #发送命令到服务端 ;
    cmd_res_size=client.recv(1024) #接收命的长度;
    print ("命令结果大小为:",cmd_res_size)
    print(type(cmd_res_size.decode()))
    cmd_size=0
    cmd_data=b''
    while cmd_size!=int(cmd_res_size.decode()):
    data=client.recv(1024)
    cmd_size+=len(data.decode())
    cmd_data+=data
    else:
    print ("cmd received done !",cmd_size)
    print (cmd_data.decode())
    client.close()

    二、服务端
    #服务端
    import socket,os
    so_server=socket.socket()
    so_server.bind(("localhost",6969))
    so_server.listen()
    print ("等电话!")
    while True: #实现多个链路连接;
    conn,addr=so_server.accept()
    print ("电话来了!")
    while True:
    data = conn.recv(1024)
    print (data.decode())
    res=os.popen(data.decode("utf-8")).read() #执行客户端命令
    cmd_size=len(res)
    conn.send(str(cmd_size).encode("utf-8"))
    conn.send(res.encode("utf-8"))
    so_server.close()


  • 相关阅读:
    数据结构的基本概念
    react 组件生命周期
    设计模式
    MySQL processlist/kill
    大数据新手之路四:联合使用Flume和Kafka
    大数据新手之路三:安装Kafka
    大数据新手之路二:安装Flume
    大数据新手之路一:安装JDK
    tmux常用快捷键
    (转)Linux下设置和查看环境变量
  • 原文地址:https://www.cnblogs.com/wulafuer/p/10168927.html
Copyright © 2011-2022 走看看