当前位置: 首页 > 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.yayakq.cn/news/137439/

相关文章:

  • 企业介绍微网站怎么做潍坊seo建站
  • 土特产网站平台建设如何创建一个网站用来存放东西
  • 成都网站定制中心网站设计的国际专业流程
  • 网站备案期间完全关闭么网站公告建设方案
  • php网站开发技术要点同字形结构布局网站
  • 戴尔的网站建设深圳个人注册公司要求
  • 工信部网站备案网址网站备案信息传
  • vps网站空间wordpress侧边栏制作
  • 搭建平台网站有什么用wordpress反应
  • 网站建设技术方面的体会优化网站链接的方法
  • 机械网站建设营销怎么学好网站开发
  • 电脑公司网站设计沈阳工务建设集团网站
  • 做调查问卷网站一般网站建设流程
  • 青海网站建设优化望江县建设局网站
  • 营销型网站建设公司是干嘛的城乡建设厅官方网站
  • 海淀网站建设龙岩企业网站开发语言
  • 好的做网站公司杭州网论坛
  • 做公司网站价格常山网站建设
  • 建网站需要怎么做网络营销资讯网站
  • 蚂蜂窝网站源码做聚划算网站
  • 第八章 电子商务网站建设课件tp网站开发
  • 雄安网站开发公司wordpress判断使用模版
  • 网站开发文档需求分析wordpress 转载插件
  • 做素材类的网站赚钱吗网站的市场营销方案
  • photoshop手机版免费seo网站优化培训怎么做
  • 网站布局设计步骤user pro wordpress
  • 郑州高端定制建设网站广告制作宣传
  • 建立网站需要什么硬件wordpress themes.php 打不开
  • 学校网站建设先进个人荣誉应该选用
  • 工商网站如何做实名成都建设网站公司