• socket2


    import socket
    client = socket.socket()

    #client.connect(('192.168.16.200',9999))
    client.connect(('localhost',9999))

    while True:
    cmd = input(">>:").strip()
    if len(cmd) == 0: continue
    client.send(cmd.encode("utf-8"))
    cmd_res_size = client.recv(1024) ##接受命令结果的长度
    print("命令结果大小:",cmd_res_size)
        client.sent('准备好接收了'.encode("utf-8"))#为解决粘包问题,而加入

    received_size = 0
    received_data = b''
    while received_size < int(cmd_res_size.decode()) :
    data = client.recv(1024)
    received_size += len(data) #每次收到的有可能小于1024,所以必须用len判断
    #print(data.decode())
    received_data += data
    else:
    print("cmd res receive done...",received_size)
    print(received_data.decode())


    client.close()


    import socket ,os,time
    server = socket.socket()
    server.bind(('localhost',9999) )

    server.listen()

    while True:
    conn, addr = server.accept()
    print("new conn:",addr)
    while True:
    print("等待新指令")
    data = conn.recv(1024)
    if not data:
    print("客户端已断开")
    break
    print("执行指令:",data)
    cmd_res = os.popen(data.decode()).read() #接受字符串,执行结果也是字符串
    print("before send",len(cmd_res))
    if len(cmd_res) ==0:
    cmd_res = "cmd has no output..."

    conn.send( str(len(cmd_res.encode())).encode("utf-8") ) #先发大小给客户端

    #time.sleep(0.5)
            client_ack = conn.recv(1024)#等待客户端返馋馈,解决粘包问题

    conn.send(cmd_res.encode("utf-8"))
    print("send done")
    #os.path.isfile()
    #os.stat("sock")
    server.close()

    import hashlib
    m = hashlib.md5()


  • 相关阅读:
    设计模式- 模板方法模式
    什么是Coded UI
    请介绍WCF服务
    我的WCF之旅(1):创建一个简单的WCF程序
    7.3 Models -- Creating And Deleting Records
    7.2 Models -- Defining Models
    7.1 Models -- Introduction
    6.3 Controllers -- Managing Dependencies Between Controllers
    6.2 Controllers -- Representing Multipe Models
    6.1 Controllers -- Introduction
  • 原文地址:https://www.cnblogs.com/rongye/p/9972754.html
Copyright © 2020-2023  润新知