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)
}
}
程序员,产品 9.1 PHP Go 前端 JwCode 渐悟分享