1、 实现一个简单的tcp服务器
1.1 server
package main
import "fmt"
import "net"
func main() {
fmt.Println("开始启动服务器")
listener, err1 := net.Listen("tcp", ":8089")
if err1 != nil {
fmt.Println("Error accepting", err1.Error())
return
}
// 处理客户端来的请求
for {
conn, err2 := listener.Accept()
if err2 != nil {
fmt.Println("Error accepting", err2.Error())
return
}
go doServerBuf(conn)
}
}
func doServerBuf(conn net.Conn) {
for {
buf := make([]byte,1024)
len, err3 := conn.Read(buf)
if err3 != nil {
fmt.Println("Error reading", err3.Error())
return
}
fmt.Printf("Received data: %v", string(buf[:len]))
}
}
1.2 client
package main
import (
"bufio"
"fmt"
"net"
"os"
)
func main() {
conn, err1 := net.Dial("tcp", ":8089")
if err1 != nil {
fmt.Println("Error dialing", err1.Error())
return
}
inputReader := bufio.NewReader(os.Stdin)
for {
fmt.Println("What to send to the server? Type Q to quit.")
input, _ := inputReader.ReadString('\n')
conn.Write([]byte(input))
}
}