Handling multiple clients
The previous recipes show how to create UDP and TCP servers. The sample codes are not ready to handle multiple clients simultaneously. In this recipe, we will cover how to handle more clients at any given time.
How to do it...
- Open the console and create the folder
chapter09/recipe03
. - Navigate to the directory.
- Create the
multipletcp.go
file with the following content:
package main import ( "fmt" "log" "net" ) func main() { pc, err := net.ListenPacket("udp", ":7070") if err != nil { log.Fatal(err) } defer pc.Close() buffer := make([]byte, 2048) fmt.Println("Waiting for client...") for { _, addr, err := pc.ReadFrom(buffer) if err == nil { rcvMsq := string(buffer) fmt.Println("Received: " + rcvMsq) if _, err := pc.WriteTo([]byte("Received: "+rcvMsq), addr);...