IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【毕设日记】(4)go语言基于gopacket+fyne简单抓包工具实现之GUI -> 正文阅读

[移动开发]【毕设日记】(4)go语言基于gopacket+fyne简单抓包工具实现之GUI

增加了两个部分的ui和修改app.go的代码
PkgInfo.go 这个是显示下面的16进制原报文数据

package ui
import (
	fyne2 "fyne.io/fyne/v2"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/data/binding"
	"fyne.io/fyne/v2/widget"
	//"github.com/google/gopacket"
)
func loadPkgInfo()  (*fyne2.Container,binding.String){
	bs:=binding.NewString()
	s:=" "
	bs.Set(s)
	l:=widget.NewLabelWithData(bs)
	scrollC:=container.NewVScroll(l)
	speparator:=widget.NewSeparator()
	PkgInfoContainer:=container.NewBorder(nil,speparator,nil,nil,scrollC)
	PkgInfoContainer.Resize(fyne2.NewSize(1600,240))
	return PkgInfoContainer,bs
}
func PkgBytes2String(PkgBytes []byte) string{
	res:=""
	for i,v:=range PkgBytes{
		if i!=0&&i%8==0{
			res+="   "
		}
		if i!=0&&i%16==0{
			res+="\n"
		}
		res+=byte2Hex(v)+" "
	}
	return res
}
func byte2Hex(b byte) string{
	care:=[]string{"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"}
	bb:=int(b)
	res:=""
	if b==0{
		return "00"
	}
	if b<16{
		return "0"+care[bb%16]
	}
	for bb>0{
		res=care[bb%16]+res
		bb/=16
	}
	return res
}

Layers.go 这个是显示各层的信息

package ui

import (
	fyne2 "fyne.io/fyne/v2"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/data/binding"
	"fyne.io/fyne/v2/widget"
	//"time"
)
func loadLayers()(*fyne2.Container,binding.String){
	bs:=binding.NewString()
	s:=" "
	bs.Set(s)
	l:=widget.NewLabelWithData(bs)
	scrollC:=container.NewScroll(l)
	speparator:=widget.NewSeparator()
	PkgInfoContainer:=container.NewBorder(nil,speparator,nil,nil,scrollC)
	PkgInfoContainer.Resize(fyne2.NewSize(1600,240))
	return PkgInfoContainer,bs
}

在app.go中修改代码

package ui

import (
	"IP_pkg_analyze/ip"
	fyne2 "fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/container"
)
func Run()  {
	a := app.New()
	//a.Settings().SetTheme(&myTheme{})
	w := a.NewWindow("简单的IP抓包工具")
	appIconPath,err:=fyne2.LoadResourceFromPath("C:\\Users\\Administrator\\Pictures\\QQ截图20190324000505.png")
	if err!=nil{
		panic(err)
	}
	w.SetIcon(appIconPath)
	loadMenus(w)
	//p:=PkgRow{Source: "src",Dest: "dst"}
	b:= ip.Get_if_list()
	Layers,layerinfo:=loadLayers()
	PkgInfo,pkg:=loadPkgInfo()
	PkgList,list:=loadPkgList(layerinfo,pkg)
	PkgListContainer:=container.NewWithoutLayout(PkgList)
	//PkgListContainer.Resize(fyne2.NewSize(1600,280))
	//PkgInfoContainer:=container.NewBorder(PkgListContainer,nil,nil,nil,PkgInfo)
	//PkgInfoContainer.Resize(fyne2.NewSize(1600,280))
	Layers.Move(fyne2.NewPos(0,280))
	PkgInfo.Move(fyne2.NewPos(0,520))
	AllContainer:=container.NewWithoutLayout(PkgListContainer,Layers,PkgInfo)
	w.SetContent(AllContainer)
	w.Resize(fyne2.NewSize(1600, 800))
	go ip.GetPkg(b[0].NPFName,list)
	w.ShowAndRun()
}


结果图:
在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-12-18 16:06:39  更:2021-12-18 16:07:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 0:28:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码