Proto/pest.go
2023-11-26 21:19:00 +01:00

59 lines
967 B
Go

package main
import (
"net"
"os"
"fmt"
)
type PestServer struct {
port uint16
}
func NewPestServer(port uint16) *PestServer {
return &PestServer{
port,
}
}
type PestSession struct{
con net.Conn
}
func NewPestSession(con net.Conn) *PestSession {
return &PestSession{
con,
}
}
func (s *PestServer) Run() {
addr := fmt.Sprintf("0.0.0.0:%d", s.port)
server, err := net.Listen("tcp", addr)
if err != nil {
fmt.Println("Error listening:", err.Error())
os.Exit(1)
}
defer server.Close()
fmt.Println("PestServer waiting for client...")
for {
connection, err := server.Accept()
if err != nil {
fmt.Println("Error accepting: ", err.Error())
os.Exit(1)
}
fmt.Println("client connected")
s.processClient(connection)
}
}
func (s *PestServer) processClient(con net.Conn) {
session := NewPestSession(con)
go session.pestHandler()
}
func (s *PestSession) pestHandler() {
}