51 lines
917 B
Go

package main
import (
"bufio"
"fmt"
"log"
"net"
"os"
)
func main() {
conn, err := net.Dial("tcp", "127.0.0.1:8888")
if err != nil {
log.Fatalf("无法连接服务器: %v", err)
}
defer conn.Close()
fmt.Println("已连接到服务器 127.0.0.1:8888")
// 启动协程接收服务器消息
go func() {
buf := make([]byte, 1024)
for {
n, err := conn.Read(buf)
if err != nil {
log.Printf("读取服务器消息错误: %v", err)
os.Exit(0)
}
fmt.Printf("服务器消息: %s\n", string(buf[:n]))
}
}()
// 从命令行读取输入并发送给服务器
scanner := bufio.NewScanner(os.Stdin)
for {
fmt.Print("请输入消息: ")
if !scanner.Scan() {
break
}
text := scanner.Text()
if text == "exit" {
fmt.Println("退出客户端")
break
}
_, err := conn.Write([]byte(text))
if err != nil {
log.Printf("发送消息失败: %v", err)
break
}
}
}