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


  • 相关阅读:
    SQL Server 2012提供的OFFSET/FETCH NEXT与Row_Number()对比测试
    sql 知识点
    javascript基础拾遗——词法作用域
    Linux 软件包管理
    涉略spring
    WebReBuild年会流水记
    javascript面向对象学习笔记(一)——继承
    算法学习——动态规划策略入门
    编程之美读书笔记——2.3寻找水王
    Linux 引导流程解析
  • 原文地址:https://www.cnblogs.com/rongye/p/9972754.html
Copyright © 2011-2022 走看看