源代码
// 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小时内删除。