Tcp链接测试.zip
最近在学习Go语言,在学到tcp的时候 由于讲课先讲的 tcp服务端 苦逼的发现没有测试工具上网查也不能直接拿到省心的工具来用,于是伍先生,忍着继续往下看,在看完之后自己弄了一个客户端测试tcp的工具下载地址\|/
这里放几张截图给大家看看
当然,网络玩意,大家如果怕有病毒啥的,也可以自行编译,或者像我一样找听课,自己弄一个
下边的是Go的源码,会的自行编译一个
客户端
package main import ( "fmt" "net" "os" ) func main() { var addr string fmt.Printf("请输入地址(127.0.0.1:8080): ") fmt.Scanln(&addr) if addr == "" { fmt.Println(addr) return } conn,err := net.Dial("tcp",addr) if err != nil{ fmt.Println("err",err) return } defer conn.Close() fmt.Printf("请输入发往服务器的字符: ") //接收服务器数据 go func() { var buf = make([]byte,2048) for{ n,err:=conn.Read(buf) if err != nil{ fmt.Println("err",err) return } fmt.Println("服务器返回: ",string(buf[:n])) fmt.Printf("请输入发往服务器的字符: ") } }() var msg = make([]byte,2048) //用户输入 for{ n,err:=os.Stdin.Read(msg) if err != nil{ fmt.Println("err",err) return } conn.Write(msg[:n]) } }
服务端
package main import ( "fmt" "net" "strings" ) func HandleConn(conn net.Conn) { //获取客户端地址 addr := conn.RemoteAddr().String() buf := make([]byte, 2048) //读取用户数据 for { n, err := conn.Read(buf) if err != nil { fmt.Println("err", err) return } var msg = "用户地址:" + addr + " 用户数据:" + string(buf[:n]) fmt.Println(msg) //处理用户数据发送给用户 //转换成大写 Toupp := strings.ToUpper(string(buf[:n])) conn.Write([]byte(Toupp)) } } func main() { //监听 listener, err := net.Listen("tcp", "192.168.1.152:8080") if err != nil { fmt.Println("err", err) return } defer listener.Close() //多个用户 for { conn, err1 := listener.Accept() if err1 != nil { fmt.Println("err1", err1) return } //处理用户请求 go HandleConn(conn) } }
程序员,产品
8.6
PHP Go 前端
JwCode
渐悟分享