之前给大家发过关于tcp控制访问以及文件传输的代码,这次是利用tkinter来传输,我写的不是特别好,请大家批评指正。

在Linux上面的代码我就不写了。若不知道的博友可以翻看我 python -- TCP "远程控制" 这篇文章。

#coding=utf-8from tkinter import *
import socket
import time
from tkinter.scrolledtext import ScrolledText
from tkinter.filedialog import askopenfilenamec = socket.socket(socket.AF_INET,socket.SOCK_STREAM)def clear():ip.set("")port.set("")fileurl1.set("")resulttext.delete(0,'end')
def choicefile():global pathpath = askopenfilename()fileurl1.set(path)
def shangchuan():cmd1 = "scwj"c.send(bytes(cmd1,encoding="gbk")) #将命令转换后发送print(path)data = c.recv(1024)print(str(data,encoding="utf8"))filename = path.split("/")[-1]print(filename)c.send(bytes(filename,encoding="gbk"))with open(path,"rb") as f:fdata = f.read()c.send(fdata)data2 = c.recv(1024)print(str(data2,encoding="utf8"))
def lianjie():IP = ip.get()PORT = port.get()addr = (IP,PORT)#print(addr)c.connect(addr) #连接服务器
def tijiao():cmd1 = cmd.get()c.send(bytes(cmd1,encoding="gbk")) #将命令转换后发送# if cmd == "byebye": #如果发送byby就退出连接# breakret = c.recv(20480)print(str(ret,encoding="utf8")) #收到的信息显示
def main() :root = Tk() #设定底板global ipip = StringVar()global portport = IntVar()global cmdcmd = StringVar()root.title("本地文件上传")global fileurl1fileurl1 = StringVar()global resulttextframe = Frame(root) #定义屏幕上的一块矩形区域frame.pack(padx=8, pady=8, ipadx=5) #矩形区域摆放iplabel = Label(frame,text="输入ip:",font="Helvetica -15 bold")iplabel.grid(row=0, column=0, padx=5, pady=5, sticky="ne")ipentry = Entry(frame,textvariable=ip,width=30)ipentry.grid(row=0, column=1, sticky='ws', columnspan=1, padx=5, pady=5)portlabel = Label(frame,text="输入端口:",font="Helvetica -15 bold") #文字标签字体portlabel.grid(row=0, column=2, padx=5, pady=5, sticky="n") #网格划分其位置在第一行第一列 上下间隔5 靠西边portentry = Entry(frame,textvariable=port,width=5) #输入框内容和值 宽度portentry.grid(row=0, column=3, sticky='ew', columnspan=1, padx=5, pady=5)ok = Button(frame,text="链接", default='active',command=lianjie) #定义按钮按下去就调用函数ok.grid(row=0, column=4,padx=8, pady=5)quitscan1 = Button(frame,text="本地文件选择", default='active',command=choicefile, width=10,height=1)quitscan1.grid(row=1, column=3, padx=8, pady=5)quitscan1= Button(frame,text="上传", default='active',command=shangchuan)quitscan1.grid(row=1, column=4, padx=8, pady=5)iplabe3 = Label(frame,text="本地文件路径:",font="Helvetica -15 bold")iplabe3.grid(row=1, column=0, padx=5, pady=5, sticky="ne")fileurl = Entry(frame,textvariable=fileurl1,width=30) #输入框内容和值 宽度fileurl.grid(row=1, column=1, sticky='ew', columnspan=1, padx=5, pady=5)resultlabel = Label(frame,text="命令输入界面:", font='Helvetica -15 bold')resultlabel.grid(row=2, column=0, padx=5, pady=5, sticky=W,columnspan=2)resulttext=Entry(frame,width=50,font=('Courier New', 13),fg='black',bg='white',textvariable=cmd)#生成一个带滚动条的矿体第二行第一列 横跨4列resulttext.grid(row=3,column=0,columnspan=5)clearscan=Button(frame,text="清空", default='active',command=clear, width=8,height=1)clearscan.grid(row=4, column=1,padx=8, pady=5)quitscan= Button(frame,text="退出", default='active',command=quit, width=8,height=1)quitscan.grid(row=4, column=3, padx=8, pady=5)quitscan= Button(frame,text="命令提交", default='active',command=tijiao, width=8,height=1)quitscan.grid(row=4, column=2, padx=8, pady=5)root.geometry("600x400")root.mainloop()
if __name__ == "__main__":main()c.close()

给打击截一下效果图

我觉得我最大的问题是命令输入界面不完善,大家可以告诉我哟~谢谢

tkinter -- tcp相关推荐

  1. 转发和重定向简介及与之相关的(URL)参数(parameter)、属性(attribute)问题探讨

    转发和重定向简介及与之相关的(URL)参数(parameter).属性(attribute)问题探讨 蜀中孤鹰 2019-07-15 15:55:49 101 收藏 最后发布:2019-07-15 1 ...

  2. python gui界面 tcp_带Tkinter GUI的Twisted TCP服务器

    最近我一直在尝试使用Twisted(python库)来制作TCP聊天服务器/客户端.我让服务器运行得很好,但是当我试图向服务器添加基于Tkinter的GUI时,事情变得很奇怪.一旦用户连接到服务器,就 ...

  3. Python中基于TCP网络通信协议的多人聊天室

    1.服务端设置 1.1 相关配置信息 便于后期维护修改,将数据协议的相关配置和服务器配置,以及登录验证的数据库信息单独建立一个.py文件.需根据自己服务器ip修改. #------数据协议相关配置-- ...

  4. 人工智能交互系统界面设计(Tkinter界面设计)

    文章目录 前言 一.项目介绍 二.项目准备 三.项目实施 1.导入相关库文件 2.人脸信息验证功能 3.语音交互与TCP数据通信 4.数据信息可视化 四.相关附件 前言 在现代信息化时代,图形化用户界 ...

  5. 基于TCP协议网上聊天程序(python)带界面

    基于TCP协议网上聊天程序(python)带界面 1 设计目标 基于TCP协议网上聊天程序 实现一简单的聊天程序实现网上聊天,包括服务器和客户端. (1)支持多人聊天: (2)客户端具有图形化用户界面 ...

  6. “Xilinx ZYNQ+TCP通信+Python上位机”实现实时视频传输系统

    笔者在CSDN的第一篇万字长文,请多多支持. 本文是笔者的公众号 IC设计者笔记 文章的转载.很多优质原创内容都会第一时间发布在公众号,欢迎关注公众号,一起交流学习.公众号后台回复"ZYNQ ...

  7. 基于TCP的网络对战象棋--python

    文章目录 象棋百科 设计目标 绘制棋盘 网络模块 走棋规则 输赢判断 对战演示 源码下载 象棋百科 中国象棋是起源于中国的一种棋,属于二人对抗性游戏的一种,在中国有着悠久的历史.由于用具简单,趣味性强 ...

  8. python嗅探工具详解附源码(使用socket,带tkinter界面)

    python嗅探工具详解(带tkinter界面) 点击详见原理 点击详见原理 TCP/IP协议号补充 必备基础知识 IP数据包格式 详见点此 TCP报文格式 详见点此 struct模块 在Python ...

  9. 《 Python程序设计项目案例》— 用Python开发的基于TCP通讯协议的私人聊天室 (期末大作业、结课作业、课程设计、毕业设计)

    基于Python与TCP协议的私人聊天室(GUI交互界面,用户注册.用户登录.实时聊天,文件上传与下载) 用Python开发的基于TCP通讯协议的实时聊天通讯和文件共享应用 目录 基于Python与T ...

最新文章

  1. Vue 单文件组件||Vue 单文件组件的基本用法||webpack 中配置 vue 组件的加载器|| 在 webpack 项目中使用 vue
  2. WCF自定义地址路由映射(不用svc文件)
  3. yslow客户端性能测试
  4. Android应用程序绑定服务(bindService)的过程源代码分析
  5. oracle 表 视图 存储过程 序列 job
  6. 八、栈的操作、栈空间
  7. java spring获取bean_普通Java类获取Spring的Bean的方法
  8. java字符串反转及替换_字符串的反转及替换
  9. 基于Java实现的班级信息管理系统
  10. 我是没有口袋的哆啦a梦
  11. 新东方老罗(罗永浩)语录全集
  12. excel相乘再相加_EXCEL数组计算【SUMPRODUCT】多条件相乘再相加
  13. 机器学习---“没有免费的午餐”(no free lunch)定理简单易懂的解释
  14. 干货 | 如何为Mist建立无服务器应用
  15. Tomcat--Linux下如何配置2个或多个同时运行
  16. Android 仿淘宝商品详情标题栏变色,布局层叠效果
  17. c语言 字符串分割与拼接
  18. 还记得谷歌之前发现的两颗行星吗?今天谷歌对此披露了重要技术细节
  19. 城市天际线 android,城市天际线手机安卓版
  20. 齐岳定制:FITC荧光素标记琼脂糖;FITC-Agarose

热门文章

  1. 乘法口诀测试小软件,60000道乘法口诀练习题模板(4至9以内各10000题)
  2. html5 游戏制作教程,【整理】一步一步学做HTML5游戏教程
  3. 项目管理基础案例分析答案
  4. 中国糯米粉行业品牌竞争策略与规模现状分析报告2022-2028年
  5. 【实验室预约平台系统——开题报告 分享(仅供参考呀)】
  6. android开发之Launcher icon(启动图标)的设计
  7. 2019年伯克利大学 CS294-112《深度强化学习》第1讲:课程介绍和概览(笔记)
  8. 李开复给中国大学生的第六封信—选择的智慧
  9. 【Python】Pandas Excel file format cannot be determined, you must specify an engine manually.报错【已解决】
  10. mysql联合查询注入防护,SQL注入之BypassWaf