socket-server/main.go

52 lines
1012 B
Go
Raw Permalink Normal View History

2022-11-22 10:04:00 +08:00
package main
import (
"net"
"socket-server/internal"
2022-11-26 17:16:19 +08:00
"sync"
2022-11-24 22:35:07 +08:00
"go.uber.org/zap"
2022-11-22 10:04:00 +08:00
)
func main() {
2022-11-26 17:16:19 +08:00
var wg sync.WaitGroup
wg.Add(2)
go listenTCP(&wg)
go listenUDP(&wg)
wg.Wait() // 等待下面两个函数协程执行完毕
}
func listenTCP(wg *sync.WaitGroup) {
defer wg.Done()
ln, err := net.ListenTCP("tcp", &net.TCPAddr{
IP: net.IPv4(0, 0, 0, 0),
Port: 65432,
})
2022-11-22 10:04:00 +08:00
if err != nil {
2022-11-26 17:16:19 +08:00
internal.Logger.Fatal("Listen error", zap.Error(err))
2022-11-22 10:04:00 +08:00
panic(err)
}
2022-11-26 17:16:19 +08:00
internal.Logger.Info("Listening messaging service on 0.0.0.0:65432/tcp")
2022-11-22 10:04:00 +08:00
for {
conn, err := ln.Accept()
if err != nil {
2022-11-24 22:35:07 +08:00
internal.Logger.Fatal("Accept error", zap.Error(err))
2022-11-22 10:04:00 +08:00
}
go internal.TCPHandler(conn)
}
}
2022-11-26 17:16:19 +08:00
func listenUDP(wg *sync.WaitGroup) {
defer wg.Done()
ln, err := net.ListenUDP("udp", &net.UDPAddr{
IP: net.IPv4(0, 0, 0, 0),
Port: 65432,
})
if err != nil {
internal.Logger.Fatal("Listen error", zap.Error(err))
}
internal.Logger.Info("Listening probe on 0.0.0.0:65432/udp")
internal.UDPHandler(ln)
}