title: Handle multiple network clients
body: <p>I have found a TCP Server and TCP Client written in go language. The problem is that the Server can't handle multiple clients and I don't know how to allow it.</p>
  
  <p><strong>Server:</strong></p>
  
  <pre><code>package main
  
  import "net"
  import "fmt"
  import "bufio"
  import "strings" // only needed below for sample processing
  
  func main() {
  
    fmt.Println("Launching server...")
  
    // listen on all interfaces
    ln, _ := net.Listen("tcp", ":8081")
  
    // accept connection on port
    conn, _ := ln.Accept()
  
    // run loop forever (or until ctrl-c)
    for {
      // will listen for message to process ending in newline (\n)
      message, _ := bufio.NewReader(conn).ReadString('\n')
      // output message received
      fmt.Print("Message Received:", string(message))
      // sample process for string received
      newmessage := strings.ToUpper(message)
      // send new string back to client
      conn.Write([]byte(newmessage + "\n"))
    }
  }
  </code></pre>
  
  <p><strong>Client:</strong></p>
  
  <pre><code>package main
  
  import "net"
  import "fmt"
  import "bufio"
  import "os"
  
  func main() {
  
    // connect to this socket
    conn, _ := net.Dial("tcp", "127.0.0.1:8081")
    for { 
      // read in input from stdin
      reader := bufio.NewReader(os.Stdin)
      fmt.Print("Text to send: ")
      text, _ := reader.ReadString('\n')
      // send to socket
      fmt.Fprintf(conn, text + "\n")
      // listen for reply
      message, _ := bufio.NewReader(conn).ReadString('\n')
      fmt.Print("Message from server: "+message)
    }
  }
  </code></pre>
  
  <p>Can anyone help me?</p>
  
  <p>Soruce: <a href="https://systembash.com/a-simple-go-tcp-server-and-tcp-client/" rel="nofollow noreferrer">https://systembash.com/a-simple-go-tcp-server-and-tcp-client/</a></p>