当前位置: 首页> 汽车> 车展 > 微信小程序和微商城的区别_一二三四视频日本高清三_百度推广官网电话_梁水才seo优化专家

微信小程序和微商城的区别_一二三四视频日本高清三_百度推广官网电话_梁水才seo优化专家

时间:2025/7/11 22:47:55来源:https://blog.csdn.net/jiudan1114/article/details/144271156 浏览次数: 0次
微信小程序和微商城的区别_一二三四视频日本高清三_百度推广官网电话_梁水才seo优化专家
package mainimport ("fmt""net"
)func connProcess(conn net.Conn, deal func(str string) string) {for {buffer := make([]byte, 1024)n, err := conn.Read(buffer)if err != nil {logT.Error("读取客户端消息失败:" + err.Error())return}msg := string(buffer[:n])// 客户端主动关闭if msg == "exit" {_ = conn.Close()return}// 处理消息rst := deal(msg)// 服务端主动关闭if rst == "exit" {_ = conn.Close()return}// 向客户端发送确认收到的消息_, err = conn.Write([]byte(rst))if err != nil {logT.Error("向客户端发送确认消息失败:" + err.Error())return}}
}func ReceiveMsg(ln net.Listener, deal func(str string) string) {for {// 接受客户端连接conn, err := ln.Accept()if err != nil {logT.Error("接受连接失败:" + err.Error())return} else {logT.Log(fmt.Sprintf("accept success ip是=%v\n", conn.RemoteAddr()))}go connProcess(conn, deal)}
}func NewServer(port int) net.Listener {ln, err := net.Listen("tcp", fmt.Sprintf(":%d", port))if err != nil {logT.Error("监听端口失败:" + err.Error())return nil}return ln
}func SendMsg(conn net.Conn, msg string) string {// 发送消息给服务端_, err := conn.Write([]byte(msg))if err != nil {logT.Error("发送消息失败:" + err.Error())return ""}// 读取服务端返回的确认消息buffer := make([]byte, 1024)n, err := conn.Read(buffer)if err != nil {logT.Error("读取服务端返回的消息失败:" + err.Error())return ""}ack := string(buffer[:n])return ack
}func NewClient(address string, port int) net.Conn {// 连接服务端conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", address, port))if err != nil {logT.Error("连接服务端失败:" + err.Error())return nil}return conn
}
package mainimport ("fmt""testing""time"
)func TestServer(t *testing.T) {ln := NewServer(8080)go ReceiveMsg(ln, func(msg string) string {return "Server Receive: " + msg})time.Sleep(time.Second * 3)client1 := NewClient("127.0.0.1", 8080)client2 := NewClient("127.0.0.1", 8080)client3 := NewClient("127.0.0.1", 8080)fmt.Println(SendMsg(client1, "hello1"))fmt.Println(SendMsg(client2, "hello2"))fmt.Println(SendMsg(client3, "hello3"))time.Sleep(time.Second * 10)
}

(logT 是本地封装的日志包)

关键字:微信小程序和微商城的区别_一二三四视频日本高清三_百度推广官网电话_梁水才seo优化专家

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: