当前位置: 首页 > news >正文

最好大连网站建设杭州推广系统

最好大连网站建设,杭州推广系统,益保网做推广网站吗?,国内漂亮大气的网站GO实现TCP服务器 首先新建一个项目go-redis,将config和lib包放到项目中,config.go用来解析配置,比如端口、功能、DB数;lib包有两个文件夹,分别是logger和sync,其中logger.go是一个日志框架,sync包中的bool.go包装了atomic操作,因为atomic原生没有bool类型,所以将uint…

GO实现TCP服务器

首先新建一个项目go-redis,将config和lib包放到项目中,config.go用来解析配置,比如端口、功能、DB数;lib包有两个文件夹,分别是logger和sync,其中logger.go是一个日志框架,sync包中的bool.go包装了atomic操作,因为atomic原生没有bool类型,所以将uint32类型改造成bool型的atomic,wait.go包装了WaitGroup等待组,多做的工作是将等待组增加一个超时功能,redis.conf配置文件写明我们redis要写在的端口和监听地址

正式开始

  • 新建一个接口文件夹,放一些全局用到的接口,首先是TCP层的handler.go,这个接口的目的是让handler.go代表一个抽象的业务逻辑,让TCP服务器只处理TCP层的连接,具体的业务扔给handler去做
type Handler interface {Handle(ctx context.Context, conn net.Conn)Close() error
}

TCP服务器开发

server.go

net.listen服务器监听端口地址,如果监听成功就调用Accept阻塞等待客户端连接,但这里我们将listener传给ListenAndServe方法,该方法传入三个参数,分别是listener,处理客户端业务的handler和传递关闭信号的channel,在其中for循环阻塞等待客户端连接,新的客户端过来后一个协程一个连接,将上下文ctx和conn句柄传入handler.Handle方法,然后我们只需在main函数里调用ListenAndServeWithSignal方法即可,但此时连接关闭和用户关闭窗口统一关闭所有客户端连接功能我们还没有处理

接下来我们就要着手改进,第一点就是我们这个for循环在不断阻塞接收新的连接,如果接收新连接出现错误后直接break,但此时我们已经有一些连接正在服务,所以我们需要等待已经连接的客户端退出,这里我们就要用到WaitGroup等待组,具体用法就是在每接收一个新的客户端连接后WaitGroup.Add(1),在接收新连接出错也就是break跳出fo

http://www.qdjiajiao.com/news/12768.html

相关文章:

  • 学做川菜的网站最佳搜索引擎
  • 全景网站开发网络广告营销的特点
  • 企业网站开发douyanet广州最新发布最新
  • 有什么网站可以做浏览单今日新闻播报
  • 辽宁省品牌建设促进会网站廊坊seo优化排名
  • 5万左右的新能源电动汽车网站推广优化排名教程
  • 济南网站建设铭盛信息江门搜狗网站推广优化
  • wordpress url路由志鸿优化网官网
  • 如何根据仿站做网站百度指数排名
  • 深圳wap网站建设进入百度网首页
  • 交警网站建设整改互联网营销的方式有哪些
  • 怎么开店铺seo词库排行
  • 手机网站是怎么制作的网络营销的策略包括
  • wordpress手机网站怎么做广告最多的网站
  • 一帘幽梦紫菱做的网站抖音搜索seo代理
  • 政府网站建设与管理规范营销宝
  • 网站的域名能换吗深圳网站设计公司排行
  • 南京网站优化建站网络推广策划方案模板
  • 用源码网站好优化吗公司网站制作要多少钱
  • 怎么做国际网站首页2021年关键词排名
  • 网络文化经营许可证变更亚马逊排名seo
  • shopify做国内网站搜索引擎排名竞价
  • 怎么生成网页太原seo排名公司
  • 专业微网站建设seo是什么岗位简称
  • 饶平网站建设公司网站推广的常用方法有哪些
  • 网站开发环境包括什么台州优化排名推广
  • 做外贸网站多少钱百度竞价推广怎么收费
  • 美食网站需求分析网页设计主要做什么
  • 戴尔网站建设目标站内seo是什么意思
  • 直播间网站开发小程序开发工具