当前位置: 首页 > 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.15wanjia.com/news/167354.html

相关文章:

  • 江门seo网站排名google谷歌搜索引擎
  • h5制作工具网站网站内部服务器错误
  • 在统计局网站上如何做图表如何做自己的博客网站
  • 网站开发背景怎么写网站制作是不是要一个后台
  • 全网型网站建设方案网站界面设计实训报告
  • 做网站公司怎么备案客户网站网站同时使用asp php
  • 做公众好号的网站吗公司网络营销外包
  • 兰州网站建站衡阳网站建设ss0734
  • 网站免费源码大全无需下载遵义网约车平台哪家好
  • 鹤壁网站开发怎么开发一款小程序
  • 一级a做爰片视频免费观看网站保定哪个公司做网站好
  • 南京建设厅官方网站百度在全国有哪些代理商
  • 网贷审核网站怎么做网页设计基础实训原理
  • 重庆大学建设管理与房地产学院网站怎么样找回网站密码
  • 做网站花多少钱网页升级紧急通知页面
  • 网站发布 图片看不到电商网站设计图
  • 网络安全网站网页策划方案
  • 进入兔展网站做PPt网站为什么被k
  • 网站设计的主要步骤网站软文伪原创
  • 广西柳州网站建设价格不错的网站建设
  • 跳网站查询的二维码怎么做的移动互联网站开发与维护
  • 自动跳转手机网站代码湖南响应式官网建设哪里有
  • 诸城哪里做网站电子商务网站建设程序应用题
  • 免费的个人主页网页制作网站wordpress title怎么设置
  • 某某公司网站建设论文wordpress防采集源码
  • 开网站 主机 服务器网络规划设计师考试大纲百度网盘
  • wordpress拖曳式建站国外做的好看的网站
  • 网站如何加入百度联盟营销方式有哪几种
  • 做网站的职位叫什么问题微商城开发
  • 江西网站建设找哪家crm管理系统哪个好用