1. 程式人生 > >[Python Study Notes]CS架構遠程訪問獲取信息--Client端v1.0

[Python Study Notes]CS架構遠程訪問獲取信息--Client端v1.0

loop ble python command error: ace class lac height

更新內容:

1.添加entry欄默認ip和port口

2.修正退出功能

3.添加退出自動關閉窗口功能

4.優化cpu顯示為固定保留兩位小數

‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘
>>文件: ps_client.py
>>作者: liu yang
>>郵箱: [email protected]

‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys, os
from socket import *
from tkinter import *

class Ps_client():
    def __init__(self):
        self.ip=None
        self.port=None
        self.data=None
        # 創建ipv4套接字
        self.client=socket(AF_INET,SOCK_STREAM)
        self.root=Tk()
        self.root.geometry(‘300x300+250+250‘)


        # 創建IP輸入框
        var_ip = StringVar()
        var_ip.set(‘localhost‘)
        self.et_ip=Entry(self.root,width=30,textvariable=var_ip)
        self.et_ip.pack()

        # 創建IP輸入框的Label
        self.ip_lable=Label(self.root,text="ip地址")

        # 創建端口號輸入框
        var_port = StringVar()
        var_port.set(66)
        self.et_port=Entry(self.root,width=30,textvariable=var_port)
        # 創建端口號Label
        self.port_lable=Label(self.root,text="端口號")

        # 創建連接按鈕,註意!!!command=後面的連接的不加括號
        self.connButten=Button(self.root,text="連接",command=self.connect)
        # 創建獲取按鈕
        self.getCpuButten=Button(self.root,text="CPU",state=‘disable‘,command=self.get_cpu_info)
        # 創建斷開按鈕
        self.exitButten=Button(self.root,text="退出",state=‘disable‘,command=self.exit_connect)

        self.txtBox=Text(self.root,width=40,height=10)



    def main(self):
        self.et_ip.place(x=5,y=20)
        self.et_port.place(x=5,y=50)
        self.ip_lable.place(x=230,y=20)
        self.port_lable.place(x=230,y=50)
        self.connButten.place(x=5,y=80)
        self.getCpuButten.place(x=90,y=80)
        self.exitButten.place(x=180,y=80)
        self.txtBox.place(x=5,y=120)
        self.txtBox.insert(INSERT,‘在這裏顯示內容‘)
        self.root.mainloop()

    def connect(self):
        self.ip=self.et_ip.get()
        try:
            self.port=int(self.et_port.get())
        except ValueError:
            self.txtBox.delete(0.0,END)
            self.txtBox.insert(0.0,"請輸入合法的ip和端口...")
        else:
            print("ip:%s"%self.ip)
            print("port:%s"%self.port)
            self.txtBox.delete(0.0,END)
            self.txtBox.insert(0.0,"正在鏈接中...")
            try:
                self.client.connect((self.ip,self.port))
            except OSError:
                print("向一個無法連接的網絡嘗試了一個套接字操作")
                self.txtBox.delete(0.0, END)
                self.txtBox.insert(0.0, "%s:%d連接失敗..."%(self.ip,self.port))
            else:
                print("%s連接成功..."%self.ip)
                self.txtBox.delete(0.0, END)
                self.txtBox.insert(0.0, "%s:%d連接成功..."%(self.ip,self.port))
                # 連接成功則將其他按鈕變為可按狀態
                self.exitButten[‘state‘]=‘active‘
                self.getCpuButten[‘state‘]=‘active‘

    def get_cpu_info(self):
        self.data=‘cpu‘
        self.client.send(self.data.encode(‘utf-8‘))
        # 將接受的數據裝換成浮點數據
        cpu_used=float(self.client.recv(1024).decode(‘utf-8‘))
        print(‘CPU使用率:%0.2f‘%cpu_used+‘%‘)
        self.txtBox.delete(0.0, END)
        # 字符串前加上r為防轉義
        self.txtBox.insert(0.0, "當前的cpu使用率:%0.2f"%cpu_used+r"%")


    def exit_connect(self):
        self.client.close()
        self.txtBox.delete(0.0, END)
        self.txtBox.insert(0.0, "當前連接已斷開...")
        print("當前連接已斷開...")
        self.exitButten[‘state‘] = ‘disable‘
        self.getCpuButten[‘state‘] = ‘disable‘
        # 關閉當前窗口
        self.root.destroy()

if __name__ == ‘__main__‘:
    Ps=Ps_client()
    Ps.main()
技術分享圖片

[Python Study Notes]CS架構遠程訪問獲取信息--Client端v1.0