Go语言tcp测试客户端

Tcp链接测试.zip 

最近在学习Go语言,在学到tcp的时候 由于讲课先讲的 tcp服务端 苦逼的发现没有测试工具上网查也不能直接拿到省心的工具来用,于是伍先生,忍着继续往下看,在看完之后自己弄了一个客户端测试tcp的工具

下载地址\|/

Tcp链接测试.zip

 

这里放几张截图给大家看看

tcp测试.gif

当然,网络玩意,大家如果怕有病毒啥的,也可以自行编译,或者像我一样找听课,自己弄一个

下边的是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)

	}
}




伍先生
  • 职业: 程序员,产品
  • 码龄: 4.1
  • 技能: PHP Go 前端
  • 微信: JwCode
  • 公众号/小程序: 渐悟分享