ping端口

This commit is contained in:
wh_zcy 2023-01-05 19:46:43 +08:00
parent 2807ec89ab
commit 7dcb823d1d
4 changed files with 81 additions and 61 deletions

View File

@ -8,8 +8,6 @@ import (
"go_dreamfactory/cmd/v2/service/observer"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"strings"
"time"
"fyne.io/fyne/v2"
@ -133,49 +131,49 @@ func (app *perfChoose) LazyInit(ptService service.PttService, obs observer.Obser
closeApp3(perfWin.tabs, common.TOOLBAR_PERF_CHOOSE)
openApp3(perfWin.tabs, common.TOOLBAR_PERF_RES)
if tables, err := cfg.NewTables(common.Loader); err != nil {
println(err.Error())
} else {
for _, v := range tables.TestFlow.GetDataList() {
p, ok := pbMap[v.Route]
if !ok {
logrus.WithField("route", v.Route).Debug("未注册")
continue
}
routeStr := strings.SplitN(v.Route, ".", 2)
for _, account := range app.binduids {
rq := ReqParams{
Sid: app.conf.SId,
Account: account,
PbReq: p,
MainType: routeStr[0],
SubType: routeStr[1],
}
b, err := app.buildReq(rq)
if err != nil {
logrus.Error(err)
return
}
app.handler.SetReq(b, true)
}
// if tables, err := cfg.NewTables(common.Loader); err != nil {
// println(err.Error())
// } else {
// for _, v := range tables.TestFlow.GetDataList() {
// p, ok := pbMap[v.Route]
// if !ok {
// logrus.WithField("route", v.Route).Debug("未注册")
// continue
// }
// routeStr := strings.SplitN(v.Route, ".", 2)
// for _, account := range app.binduids {
// rq := ReqParams{
// Sid: app.conf.SId,
// Account: account,
// PbReq: p,
// MainType: routeStr[0],
// SubType: routeStr[1],
// }
// b, err := app.buildReq(rq)
// if err != nil {
// logrus.Error(err)
// return
// }
// app.handler.SetReq(b, true)
// }
param := lib.ParamMgr{
Caller: app.handler,
Timeout: time.Duration(app.conf.Pressure.TimeoutMs) * time.Millisecond,
Lps: uint32(app.conf.Pressure.Concurrency),
Duration: time.Duration(app.conf.Pressure.DurationS) * time.Second,
ResultCh: make(chan *lib.CallResult, 50),
}
a, err := lib.NewAssistant(obs, param)
if err != nil {
logrus.Error(err)
}
// param := lib.ParamMgr{
// Caller: app.handler,
// Timeout: time.Duration(app.conf.Pressure.TimeoutMs) * time.Millisecond,
// Lps: uint32(app.conf.Pressure.Concurrency),
// Duration: time.Duration(app.conf.Pressure.DurationS) * time.Second,
// ResultCh: make(chan *lib.CallResult, 50),
// }
// a, err := lib.NewAssistant(obs, param)
// if err != nil {
// logrus.Error(err)
// }
a.Start()
// a.Start()
a.ShowResult()
}
}
// a.ShowResult()
// }
// }
}
//上一步

View File

@ -1,7 +1,6 @@
package ui
import (
"fmt"
"go_dreamfactory/cmd/v2/lib"
"go_dreamfactory/cmd/v2/lib/common"
"go_dreamfactory/cmd/v2/lib/storage"
@ -20,7 +19,6 @@ import (
"fyne.io/fyne/v2/widget"
"github.com/Pallinder/go-randomdata"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
"google.golang.org/protobuf/proto"
)
@ -47,18 +45,18 @@ func (app *perfPb) LazyInit(ptService service.PttService, obs observer.Observer)
app.itemList.ItemList = app.itemList.CreateList()
app.pbList = func() {
if tables, err := cfg.NewTables(common.Loader); err != nil {
println(err.Error())
} else {
for _, v := range tables.TestFlow.GetDataList() {
item := common.Item{
Id: cast.ToString(v.Id),
Text: fmt.Sprintf("%-6d %-20s %-20s %s", v.Id, v.Msg, v.Route, v.Params),
Data: v,
}
app.itemList.AddItem(item)
}
}
// if tables, err := cfg.NewTables(common.Loader); err != nil {
// println(err.Error())
// } else {
// for _, v := range tables.TestFlow.GetDataList() {
// item := common.Item{
// Id: cast.ToString(v.Id),
// Text: fmt.Sprintf("%-6d %-20s %-20s %s", v.Id, v.Msg, v.Route, v.Params),
// Data: v,
// }
// app.itemList.AddItem(item)
// }
// }
}
defer app.pbList()

View File

@ -14,6 +14,7 @@ import (
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
@ -25,8 +26,6 @@ type appPing struct {
func (this *appPing) LazyInit(ptService service.PttService, obs observer.Observer) error {
this.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_PING, theme.DownloadIcon(), nil)
this.resultCh = make(chan int)
content := container.NewMax()
content.Objects = []fyne.CanvasObject{}
@ -36,18 +35,41 @@ func (this *appPing) LazyInit(ptService service.PttService, obs observer.Observe
portEntry := widget.NewMultiLineEntry()
portEntry.Text = "80,3306,6379"
form := widget.NewForm(
widget.NewFormItem("主机", targetHost),
widget.NewFormItem("端口", portEntry),
)
// result
result := widget.NewMultiLineEntry()
form.OnSubmit = func() {
result.Text = ""
if portEntry.Text == "" {
return
}
this.resultCh = make(chan int)
ports := strings.Split(portEntry.Text, ",")
this.ping(targetHost.Text, ports)
var msgs []string
for p := range this.resultCh {
fmt.Println(p, "ok")
for _, v := range ports {
if cast.ToInt(v) == p {
msgs = append(msgs, fmt.Sprintf("端口:%d OK", p))
} else {
msgs = append(msgs, fmt.Sprintf("端口:%s ERR", v))
}
result.Text = strings.Join(msgs, "\n")
result.Refresh()
}
}
}
form.Items[1].HintText = "多个端口使用英文,号分隔"
content.Objects = append(content.Objects, form)
result.OnChanged = func(s string) {
result.Refresh()
}
content.Objects = append(content.Objects, container.NewBorder(form, nil, nil, nil, result))
this.tabItem.Content = content
return nil
}
@ -61,6 +83,8 @@ func (this *appPing) ping(targetHost string, ports []string) {
_, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", targetHost, p), time.Millisecond*500)
if err == nil {
this.resultCh <- p
} else {
logrus.Error(err)
}
}(cast.ToInt(port))
}

View File

@ -53,7 +53,7 @@ func NewToolWindow(ui *UIImpl, parent fyne.Window) ToolWindow {
openApp2(mw.at, common.TOOLBAR_TERM)
}),
widget.NewToolbarAction(theme.MailSendIcon(), func() {
widget.NewToolbarAction(theme.ComputerIcon(), func() {
openApp2(mw.at, common.TOOLBAR_PING)
}),