使用方式:
其中,GetServer
使用单例模式通过给定一个唯一的名称获取/创建一个单例Server
,后续可通过SetAddress
和方法动态修改Server属性;NewServer
则直接根据给定参数创建一个Server对象,并可指定名称。
在这个示例中我们使用了Send
和来发送和接收数据。其中Recv
方法会通过阻塞方式接收数据,直到客户端”发送完毕一条数据”(执行一次Send
,底层Socket通信不带缓冲实现),或者关闭链接。关于其中的链接对象gtcp.Conn
的介绍,请继续阅读后续章节。
每一个客户端发起的TCP链接,TCPServer都会创建一个进行处理,直至TCP链接断开。由于goroutine比较轻量级,因此可以支撑很高的并发量。