Go的发送消息(TCP服务客户端-SOCKET)
1.目录
2.service
package main import ( "fmt" "net" ) func processConn(conn net.Conn) {
defer conn.Close()
//3.与客户端通信 var temp [128]byte
for { n, err := conn.Read(temp[:]) if err != nil { fmt.Println("读取链接失败,err:", err) return } fmt.Println(string(temp[:n])) } } func main() { //1.本地端口启动服务 listener, err := net.Listen("tcp", "127.0.0.1:2001") if err != nil { fmt.Println("开始连接tcp端口 127.0.0.1 失败,err:", err) return } //2.等待建立链接 for { conn, err := listener.Accept() if err != nil { fmt.Println("接受失败,err:", err) return } go processConn(conn) } }
3.client
package main import ( "bufio" "fmt" "net" "os" "strings" ) //tcp client func main() { //1.与服务端建立链接 conn, err := net.Dial("tcp", "127.0.0.1:2001") if err != nil { fmt.Println("dial 127.0.0.1:2001 失败,err", err) return } //2.发送数据 reader := bufio.NewReader(os.Stdin) for { fmt.Println("请输入:") msg, _ := reader.ReadString('\n') msg = strings.TrimSpace(msg) if msg == "exit" { break } conn.Write([]byte(msg)) } conn.Close() }
4.执行结果:
注:使用cmd进入对应路径执行
参考:https://www.bilibili.com/video/BV1fz4y1m7Pm?p=113