[Python Study Notes]CS架构远程访问获取信息--Client端v1.0
更新内容:
1.添加entry栏默认ip和port口
2.修正退出功能
3.添加退出自动关闭窗口功能
4.优化cpu显示为固定保留两位小数
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' >>文件: ps_client.py >>作者: liu yang >>邮箱: liuyang0001@outlook.com ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' #!/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的更多相关文章
- [Python Study Notes]CS架构远程访问获取信息--Client端v2.0
更新内容: 1.增加内存信息获取 2.增加电池信息获取 3.增加磁盘信息获取 4.重新布局窗体 5.增加窗体名称 6.增加连接成功之前,不可按压 效果图: '''''''''''''''''''''' ...
- [Python Study Notes]CS架构远程访问获取信息--SERVER端v2.0
更新内容: 1.增加内存信息获取 2.增加电池信息获取 3.增加磁盘信息获取 4.重新布局窗体 5.增加窗体名称 6.增加连接成功之前,不可按压 ''''''''''''''''''''''''''' ...
- [Python Study Notes]CS架构远程访问获取信息--Client端
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- [Python Study Notes]CS架构远程访问获取信息--SERVER端
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- Eureka系列(三)获取服务Client端具体实现
获取服务Client 端流程 我们先看下面这张图片,这张图片简单描述了下我们Client是如何获取到Server已续约实例信息的流程: 从图片中我们可以知晓大致流程就是Client会自己开启一个 ...
- [Python Study Notes]进程信息(丁丁软件监控进程,http-post)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- [Python Study Notes]cpu信息
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- [Python Study Notes]电池信息
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- [Python Study Notes]内存信息
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
随机推荐
- Red Hat
同义词 REDHAT一般指Red Hat Red Hat(红帽)公司(NYSE:RHT)是一家开源解决方案供应商,也是标准普尔500指数成员.总部位于美国北卡罗来纳州的罗利市,截止2015年3月3日, ...
- ecshop商城_
一.Ecshop简介: ECShop是Comsenz公司推出的一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店.系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序. ECSho ...
- 机器学习——kNN(1)基本原理
=================================版权声明================================= 版权声明:原创文章 禁止转载 请通过右侧公告中的“联系邮 ...
- 如何跳出页面的Frame框架
摘录自:http://blog.csdn.net/clare504/article/details/9347363 很多网页都是框架结构的,在很多的情况下会通过按钮点击事件或链接,跳出框架转到其它界面 ...
- Vue.js的坑
参考网址:http://cn.vuejs.org/v2/guide/components.html 1.camelCase vs. kebab-case HTML 特性不区分大小写.当使用非字符串模版 ...
- mysql数据库管理工具navicat for mysql怎么用
mysql数据库管理工具navicat for mysql,对于不怎么喜欢图形界面或者不太方便使用SQL的时候.我们可以通过用这个图形界面数据库管理工具来管理mysql,本经验咗嚛就简单介绍一下怎么用 ...
- 服务器大量的fin_wait1 状态长时间存在原因分析
有一台服务器,出现很多的fin_wait1状态的socket. 环境: [root@localhost ~]# uname -aLinux localhost.localdomain 2.6.32-3 ...
- 2017-06-30(ps pstree top kill w killall pkill)
ps(查看系统下所有进程) -a 显示一个终端的所有进程,除了会话引线 -u 显示进程的归属用户以及内存的使用情况 -x 显示没有控制终端的进程 -l 长格式显示,更加详细的信息 -e 显示所有的进程 ...
- [转]如何使用PHP实现javascript的escape和unescape函数
前端开发工程师都知道javascript有编码函数escape()和对应的解码函数unescape(),而php中只有个urlencode和urldecode,这个编码和解码函数对encodeURI和 ...
- linux_NFS
NFS是什么? 网络文件系统,又叫共享存储,通过网络连接让不同主机之间实现共享存储. 应用于存放图片.附件.视频等用户上传文件 相关同类应用:大型网站nfs有压力,使用moosefs(mfs),Ghu ...