Example analysis of simple network program in go language

  • 2020-05-24 05:42:08
  • OfStack

This paper analyzes the go language simple network program. Share with you for your reference. The specific analysis is as follows:

The server code is as follows:

package main
import (
    "net"
    "os"
)
func serve(s net.Conn) {
    var buf [1024]byte
    for {
        n, err := s.Read(&buf)
        if err != nil || n == 0 {
            break;
        }
        s.Write(buf[0:n])
    }
}
func main() {
    l, e := net.Listen("tcp", ":12345")
    if e != nil {
        os.Exit(-1)
    }
    for {
        s, e := l.Accept()
        if e != nil {
            os.Exit(-1)
        }
        go serve(s)
    }
}

The client code is as follows:

package main
import (
    "net"
    "os"
)
func main() {
    s, err := net.Dial("tcp", "", "192.168.1.168:12345")
    if err != nil {
        os.Exit(-1)
    }
    for {
        var buf [1024]byte
        n, err := os.Stdin.Read(&buf)
        if err != nil || n == 0 {
            os.Exit(-1)
        }
        s.Write(buf[0:n])
        n, err = s.Read(&buf)
        if err != nil || n == 0 {
            os.Exit(-1)
        }
        os.Stdin.Write(buf[0:n])
    }
}

I hope this article has been helpful to you in the programming of Go language.


Related articles: