package server import ( "fmt" "log" "net" ) type SMPPServer struct { Id int conns []*net.Conn listener net.Listener port string log log.Logger } func NewSMPPServer(port string, id int) *SMPPServer { server := &SMPPServer{ port: port, log: log.Logger{}, Id: id, } server.log = *log.New(log.Writer(), "", log.LstdFlags) server.log.SetPrefix(fmt.Sprintf("SMPP server %d: ", server.Id)) return server } func (s *SMPPServer) Listen() error { listener, err := net.Listen("tcp", s.port) if err != nil { return fmt.Errorf("failed to start SMPP server: %w", err) } s.log.Printf("SMPP server %d started on %s", s.port) s.listener = listener return nil } // package main // import ( // "net" // "fmt" // ) // func main() { // ln, err := net.Listen("tcp", ":8080") // if err != nil { // fmt.Println(err) // return // } // defer ln.Close() // for { // conn, err := ln.Accept() // if err != nil { // fmt.Println(err) // continue // } // go handleConnection(conn) // } // } // func handleConnection(conn net.Conn) { // defer conn.Close() // // Handle the connection // }