源代码
// SocketDataServer
package main
import (
"SocketDataServer/Public/BZ"
"SocketDataServer/Public/Decryption/48"
"SocketDataServer/Public/JZCZ"
"bufio"
"bytes"
"le/p/mahonia"
_ "le/p/odbc"
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"database/sql"
"encoding/base64"
"encoding/binary"
"encoding/pem"
"errors"
"fmt"
"github/lxn/walk"
. "github/lxn/walk/declarative"
"github/lxn/win"
"github/msbranco/goconfig"
"log"
rd "math/rand"
"net"
"os"
"os/exec"
"path/filepath"
"strings"
"sync"
"syscall"
"time"
)
type bus struct {
ch int64
unix int64
}
type jkxl struct {
xl int //监控线路
}
type busjl struct {
xl int64 //线路
ch int64 //车号
}
var publicKey = []byte(`
-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAI2CIunEj5Ono+3FMtS9NMCmG+ATNdRP
JAbjfv5Hn8w/PkivsUDG6CJE5bwUQ99IYjNOcYlIu98RTrrsMvhXwHkCAwEAAQ==
-----END PUBLIC KEY-----
`)
type MyMainWindow struct {
*walk.MainWindow
}
var privateKey = []byte(`
-----BEGIN RSA PRIVATE KEY-----
MIIBOgIBAAJBAI2CIunEj5Ono+3FMtS9NMCmG+ATNdRPJAbjfv5Hn8w/PkivsUDG
6CJE5bwUQ99IYjNOcYlIu98RTrrsMvhXwHkCAwEAAQJAaS1r08LkUIQOpOCoilTj
S7lrCJ5eqSH1jiUzM756uGzCYsTHrvDyjsp2sjEF7zXiIq5zTHG83D+gmEMMWoc/
vQIhALwWj8NfSIvvY+5adDhPILCX7yoLCkODp9R9eomhHckrAiEAwJoX2ApeEVyr
mCSrE2XWveAhw49ZtoY4fJb9JOTpQusCIG4eA2MNyOpsaCQm/v3sjaX1/caumf62
+K42HGSxWD/rAiEAnEKow7OtnCJ2aYqeba97KTPV0ObV33tICvUpTqyV/58CIGPe
Bfb+4kSiTpt+o0bjNRV/Pzb2+T2RaqKP60FLKt5N
-----END RSA PRIVATE KEY-----
`)
var labiden *walk.Label
var labdata *walk.Label
var text *walk.TextEdit
var check *walk.CheckBox
var labOracle *walk.Label
var labsockadd *walk.Label
var txtdata *walk.LineEdit
var button *walk.PushButton
var checkSql *walk.CheckBox4k电影源代码
var labdataname *walk.Label
var sum2 int = 0
var sum3 int = 0
var sy1 = new(sync.Mutex)
var sy2 = new(sync.Mutex)
var sy3 = new(sync.Mutex)
var sy4 = new(sync.Mutex)
var sy5 = new(sync.Mutex)
var sy6 = new(sync.Mutex)
var sy7 = new(sync.Mutex)
var sy8 = new(sync.Mutex)
var sy9 = new(sync.Mutex)
var sy10 = new(sync.Mutex)
var pathmap map[int]string = make(map[int]string) //路径map
var hmdmap map[net.Conn][]bus = make(map[net.Conn][]bus) //黑名单客户端
var videomap map[net.Conn][]bus = make(map[net.Conn][]bus) //视频客户端
var ddserver map[net.Conn]int64 = make(map[net.Conn]int64) //调度服务器map
var socketmap map[net.Conn]int64 = make(map[net.Conn]int64) //记录socket
var updatemap map[net.Conn][]bus = make(map[net.Conn][]bus) //升级客户端
var jkxlmap map[net.Conn][]jkxl = make(map[net.Conn][]jkxl) //线路监控map
var hmdxlmap map[net.Conn][]jkxl = make(map[net.Conn][]jkxl) //黑名监控线路
var buffermap map[net.Conn][]byte = make(map[net.Conn][]byte) //接收缓冲区map
var busjlmap map[net.Conn][]busjl = make(map[net.Conn][]busjl) //车载端记录
var updatexlmap map[net.Conn][]jkxl = make(map[net.Conn][]jkxl) //升级监控线路
func init() {
//获取当前程序的路径
file, _ := exec.LookPath(os.Args[0])
p, _ := filepath.Abs(file)
paths := strings.Split(p, "\\")
path := paths[0] + "/"
for i := 1; i < len(paths)-1; i++ {
path = path + paths[i] + "/"
}
EXESql = file
config = path + "config.cfg"
pathdbys = path + "dbysdata"
pathdbzd = path + "dbzddata"
pathdbxf = path + "dbxfdata"
pathdbcz = path + "dbczdata"
pathmap[0] = path + "dbysdata"
pathmap[1] = path + "dbzddata"
pathmap[2] = path + "dbxfdata"
pathmap[3] = path + "dbczdata"
pathmap[4] = path + "log"
for _, v := range pathmap {
_, err := os.Stat(v)
if err != nil {
err := os.MkdirAll(v, 0777)
if err != nil {
return
}
}
}
logpath = path + "log/" + time.Now().Format("20060102") + ".log" //创建日志
}
func main() {
mw := new(MyMainWindow)
if err := (MainWindow{
AssignTo: &mw.MainWindow,
Title: "通讯存储服务器 v2.2 " + EXESql,
MinSize: Size{500, 600},
Children: []Widget{
Label{
AssignTo: &labsockadd,
Text: "通讯端口:",
},
Label{
AssignTo: &labdata,
Text: "数据库地址:",
},
Label{
AssignTo: &labdataname,
Text: "数据库名称:",
},
Label{
AssignTo: &labdatauser,
Text: "数据库用户:",
},
CheckBox{
AssignTo: &checkSql,
},
PushButton{
AssignTo: &button,
Text: "保存",
OnClicked: func() {
var hwnd win.HWND
data, err := RsaEncrypt([]byte(txtdatapass.Text()))
if err != nil {
win.MessageBox(hwnd, Text(err.Error()), Text("提示"), win.MB_OK)
return
}
password := base64.StdEncoding.EncodeToString(data)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论