This is a creation in Article, where the information may have evolved or changed.
Package main //*********************************server*****************************************import ( "FMT" "NET" " Bufio") func main () {listener, err: = Net. Listen ("TCP", ": 8000");//listen localhost:8000if Err! = nil {return;} For{conn,err: = Listener. Accept ();//wait for acceptif err! = Nil {fmt. Printf ("%s\n", err); continue;} Go handler (conn);//Create a thread}}func handler (conn net. Conn) {fmt. Printf ("accepted!\n"); fmt. Printf ("%s\n", Conn. Localaddr (). String ()); buf, err:= Bufio. Newreader (conn). ReadString (' \ n '); fmt. fprintf (Conn, "HTTP 1.1 OK \ r \ n"); for err = = Nil {fmt. Printf ("%s", buf); buf,err = Bufio. Newreader (conn). ReadString (' \ n ');}}
client*********************************************************** ***********
Package Mainimport ("FMT" "Net" "Bufio") func main () {var err error; Var conn net. Conn;conn, err = net. Dial ("TCP", "localhost:8000");//connect to localhost:8000if err! = Nil {fmt. Printf ("%s\n", err); return;} Fmt. Printf ("connected!\n"); fmt. fprintf (Conn, "Get/http 1.1 \r\n\r\n"); var in * Bufio. Reader;in = Bufio. Newreader (conn); str, err: = in. ReadString (' \ n '); if err! = nil {return;} Fmt. Printf ("%s", str);}