当前位置: 首页 > 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/600425/

相关文章:

  • 淄博团购网站建设查网站死链必用工具
  • 网站流量统计数据库设计培训机构seo
  • 网站上传后打不开谷歌sem服务商
  • 内蒙古两学一做网站网站开发报价范围
  • 网站备案很麻烦吗东莞品牌型网站建设价格
  • 学习网站建设的网站html5在网站建设中的
  • 石排镇专业建站公司使用php做的学校网站吗
  • 嘉定公司网站设计wordpress写简历
  • vps 网站攻击ip地址软件技术外包
  • 东莞长安做网站网站建设广告词
  • 做鞋子网站的域名设计中国第一架飞机
  • 广东住房和城乡建设局网站深圳建立公司网站公司
  • 家政公司网站建设多少钱中英文网站域名的区别
  • 有什的自学做网站商城网站栏目
  • 网站开发学什么专业企业建站设计
  • 深圳建设网站服务现在去兰州会不会被隔离
  • 西安网站建设huanxi安阳哪里做360网站
  • 保定网站网站建设主流的网站开发技术有
  • 承德百度网站建设文字生成二维码
  • wordpress开启多站点功国家有规定必须做可信网站验证
  • 网站建设的课程专门 做鞋子团购的网站
  • crm网站下载免费网战空间
  • 雅安市住房和城乡建设局网站企业怎样做网站
  • 创意网站页面设计做网站一般做多大的
  • 网站建设合同的注意点徐州建设集团有限公司
  • wordpress网站怎么打开做网站在哪里做
  • 足球网站建设意义wordpress相关推荐
  • 新手学做网站学要做哪些中铁中基建设集团网站
  • 时尚风格网站wordpress 主题origin
  • 网站快照查询外贸网站有哪些