Ai
1 Star 1 Fork 0

凡卡/libp2parea

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
simple_server.go 2.31 KB
一键复制 编辑 原始数据 按行查看 历史
凡卡 提交于 2023-11-29 11:01 +08:00 . first commit
package main
import (
"crypto/sha256"
"fmt"
"path/filepath"
"gitee.com/prestonTao/keystore"
"gitee.com/prestonTao/libp2parea"
"gitee.com/prestonTao/libp2parea/engine"
"gitee.com/prestonTao/libp2parea/nodeStore"
)
var (
addrPre = "SELF"
areaName = sha256.Sum256([]byte("nihaoa a a!"))
keyPwd = "123456789"
serverHost = "3.8.4.211"
clientHost = "127.0.0.1"
basePort = 19960
)
func main() {
fmt.Println("start")
engine.SetLogPath("simple_server_log.txt")
StartOnePeer()
select {}
}
func StartOnePeer() *libp2parea.Area {
keyPath1 := filepath.Join("conf", "keystore_server.key")
dbpath := filepath.Join("db", "msgcache_server")
key1 := keystore.NewKeystore(keyPath1, addrPre)
err := key1.Load()
if err != nil {
//没有就创建
err = key1.CreateNewKeystore(keyPwd)
if err != nil {
panic("创建key1错误:" + err.Error())
}
}
if key1.NetAddr == nil {
_, _, err = key1.CreateNetAddr(keyPwd, keyPwd)
if err != nil {
panic("创建NetAddr错误:" + err.Error())
}
}
if len(key1.GetAddr()) < 1 {
_, err = key1.GetNewAddr(keyPwd, keyPwd)
if err != nil {
panic("创建Addr错误:" + err.Error())
}
}
if len(key1.GetDHKeyPair().SubKey) < 1 {
_, err = key1.GetNewDHKey(keyPwd, keyPwd)
if err != nil {
panic("创建Addr错误:" + err.Error())
}
}
area, err := libp2parea.NewArea(areaName, key1, keyPwd)
area.SetNetTypeToTest()
area.SetLeveldbPath(dbpath)
// area.SetDiscoverPeer(serverHost+":"+strconv.Itoa(19981), "7.6.6.1:19981")
area.StartUP(false, clientHost, uint16(basePort))
// InitHandler(area)
return area
}
const msg_id_text = 1000
const msg_id_searchSuper = 1001
func sendMsg(area *libp2parea.Area, toAddr nodeStore.AddressNet) {
engine.Log.Info("start sendMsg")
content := []byte("你好")
msg, sendOk, isSelf, err := area.SendP2pMsg(msg_id_text, &toAddr, &content)
if err != nil {
engine.Log.Info("发送失败:%s", err.Error())
return
}
engine.Log.Info("发送消息%v %t %t", msg, sendOk, isSelf)
netid := area.GetNetId()
addrs := nodeStore.GetQuarterLogicAddrNetByAddrNet(&netid)
for i, v := range addrs {
if i == 0 {
continue
}
_, err := area.SendSearchSuperMsg(msg_id_searchSuper, v, &content)
if err != nil {
engine.Log.Info("发送错误:%s", err.Error())
} else {
engine.Log.Info("发送search super msg成功")
}
}
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/prestonTao/libp2parea.git
git@gitee.com:prestonTao/libp2parea.git
prestonTao
libp2parea
libp2parea
3aaa451ef873

搜索帮助