package network import ( "StoreBackEnd/pkg/protocol/managers" "bufio" "fmt" "net" ) type ServerUnicast struct { Network string Port int ReqManager *managers.RequestManager } func (server ServerUnicast) Run() { listen, err := net.Listen(server.Network, fmt.Sprintf("0.0.0.0:%d", server.Port)) // "tcp", "0.0.0.0:58000" if err != nil { fmt.Printf("Can't start server : %s\n", err) return } // Attente connexion du FileFrontEnd con, err := listen.Accept() print("connection ok") if err != nil { fmt.Printf("Error while accepting client : %s\n", err) return } else { for { // TODO : Extraire cette partie de code reader := bufio.NewReader(con) line, err := reader.ReadString('\n') println("[REQUEST] " + line) if err != nil { return } response := server.ReqManager.Execute(line, reader) if response == nil { break } else { println("[RESPONSE] : ", response.Cmd) _, _ = con.Write([]byte(response.Cmd)) // TODO : ATTENTION laisser les \n if response.Write != nil { response.Write(bufio.NewWriter(con)) } } } con.Close() } listen.Close() }