服务器端:
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, "hellon")
res, err := bufio.NewReader(conn).ReadString('n')
if err != nil {
log.Fatal(err)
}
fmt.Println(string(res))
fmt.Fprintf(conn, "Jimmy!n")
}
标签: go,socket,服务器,客户端