go语言socket服务器端和客户端简单实现
服务器端:
package main import ( "bufio" "fmt" "log" "net" ) func handleConnection(conn net.Conn) { defer conn.Close() data, err := bufio.NewReader(conn).ReadString('\n') if err != nil { log.Fatal(err) } fmt.Println(string(data)) fmt.Fprintf(conn, "who?\n") data, err = bufio.NewReader(conn).ReadString('\n') if err != nil { log.Fatal(err) } fmt.Println(string(data)) } func main() { l, err := net.Listen("tcp", ":2300") if err != nil { log.Fatal(err) } defer l.Close() for { conn, err := l.Accept() if err != nil { log.Fatal(err) } go handleConnection(conn) } }
客户端:
package main import ( "bufio" "fmt" "log" "net" ) func main() { conn, err := net.Dial("tcp", ":2300") if err != nil { log.Fatal(err) } defer conn.Close() fmt.Fprintf(conn, "hello\n") res, err := bufio.NewReader(conn).ReadString('\n') if err != nil { log.Fatal(err) } fmt.Println(string(res)) fmt.Fprintf(conn, "Jimmy!\n") }