mirror of
https://gitee.com/willfree/tcpserver-client.git
synced 2026-06-03 16:16:18 +08:00
66 lines
1.4 KiB
Go
66 lines
1.4 KiB
Go
package main
|
|
// 分配子网边界服务器地址的服务器
|
|
|
|
import (
|
|
"fmt"
|
|
"net"
|
|
"strconv"
|
|
"TCPServerClient/utils"
|
|
)
|
|
|
|
const (
|
|
DefaultSubServerIP = "localhost" // 服务器IP
|
|
DefaultSubServerPort = 50005 // 服务器端口号
|
|
)
|
|
|
|
type SubServer struct {
|
|
serverIP string
|
|
serverPort int
|
|
}
|
|
|
|
// 开启server,并建立监听
|
|
func (s *SubServer) start() {
|
|
fmt.Println("Starting the sub server ...")
|
|
// 初始化
|
|
s.serverIP=DefaultSubServerIP
|
|
s.serverPort=DefaultSubServerPort
|
|
// 创建 listener
|
|
listener, err := net.Listen("tcp", s.serverIP+":"+strconv.Itoa(s.serverPort))
|
|
if err != nil {
|
|
fmt.Println("Error listening", err.Error())
|
|
return
|
|
}
|
|
// 监听并接受来自客户端的连接,并进行处理
|
|
for {
|
|
conn, err := listener.Accept()
|
|
if err != nil {
|
|
fmt.Println("Error accepting", err.Error())
|
|
return
|
|
}else{
|
|
fmt.Println("Sub Server Accept conn form "+conn.RemoteAddr().String())
|
|
}
|
|
// 处理客户端请求
|
|
go doSubServerStuff(conn)
|
|
}
|
|
}
|
|
|
|
/**
|
|
处理客户端请求:接收并打印客户端发来的消息
|
|
*/
|
|
func doSubServerStuff(conn net.Conn) {
|
|
for {
|
|
// 读取原始数据
|
|
buf := make([]byte, 512)
|
|
len, err := conn.Read(buf)
|
|
if err != nil {
|
|
fmt.Println("Error reading", err.Error())
|
|
return
|
|
}
|
|
msg:=string(buf[:len])
|
|
fmt.Println("Received raw data: %v", msg)
|
|
|
|
// 解密数据为可读格式
|
|
utils.DecryptMsgByDES(msg,DefaultPassword)
|
|
fmt.Println("Received decrypt data: %v", msg)
|
|
}
|
|
} |