目录
服务端监听端口 listen()
net.listen({监听类型},{监听的ip和端口})(conn, err){}
connerrnil
import ("net"
"fmt"
)
conn,err := net.Lisien("tcp","127.0.0.1:8082")
if err != nil{
fmt.Println("链接失败,错误信息为:"+err)
}
接受客户端的链接conn.Accept()
conn.Accept() (newConn,err){}newConnnet.Connerrnil
// ...上面的代码...
// 因为客户端的链接不止一个,需要一直监听,所以加个死循环
for{
newConn,err := conn.Accept()
if err != nil{
fmt.Println(err)
}
go handler(newConn)
}
// 客户端连接后处理逻辑
func handler(newConn net.Conn){
// TODO
}
接收客户端发过来的数据newConn.Read()
newConn.Read(msg)(num,err){}
numerrnil
msg
// ...上上边代码补充...
// 客户端连接后处理逻辑
func handler(newConn net.Conn){
for{
// 新建一个位置用于存放客户端数据
msg := make([]byte,1024)
num,err := newConn.Read(msg)
if err != nil{
// 打印错误信息
}
fmt.Println("客户端消息:"+msg)
}
}
获取客户端的IP地址newConn.RemoteAddr().String()
// 获取ip地址,转为之字符串 newConn.RemoteAddr().String()
向客户端发送数据newConn.Write()
newConn.Write(msg){}
msg[]byte
注意点:需要把待发送的字符串转为byte切片类型
newConn.Write([]bye("你好世界,helloworld1"))
关闭客户端连接newConn.Close()
newConn.Close(){}
Close()
newConn.Close()
客户端连接tpc服务端
连接服务端net.Dial()
net.Dial({连接类型},{地址})(conn,err){}
connerrnil
// 建立tcp连接
package main
import (
"net"
"fmt"
)
Ip,Port := "127.0.0.1",8081
conn,err := net.Dial("tcp",fmt.Sprintf("%s:%d",Ip,Port))
if err != nil{
fmt.Println("net.Dial 错误:",err)
return nil
}
if(conn == nil){
fmt.Println(">>>>>>>>连接错误")
return
}
fmt.Println(">>>>>>>>连接成功")
运行:
您可能感兴趣的文章: