Golang 的 socket 编程 (三):并发 Server-Client

马谦马谦马谦 Golang评论5941字数 316阅读 1 分 3 秒阅读模式

一、概述

上一篇实现了一个 server 和 client 通信,完成了小写转大写的功能,但是是一个单任务式的响应:客户端发送连接接收响应,程序结束;服务端则接收数据响应数据也结束!就实际需要而言,并没有很大的用处,所以现在我们就给客户端和服务端添加上并发功能。

逻辑其实很简单,就是利用 golang 的 gorutine,一旦来新的连接,就开启一个 gorutine 去处理,然后响应,直到客户端关闭连接。

二、服务端

三、客户端

四、运行

此时,我们开启一个服务端,开启两个客户端进行测试:

Golang的socket编程(三):并发Server-Client-图片1

Golang的socket编程(三):并发Server-Client-图片2

Golang的socket编程(三):并发Server-Client-图片3

至此,一个完美的多并发服务端就完成了!

  最后更新:2017-11-18
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2017 年 9 月 13 日 20:44:11
  • 转载请务必保留本文链接:https://www.dyxmq.cn/program/code/golang/golang-socke-3.html
解决gvm工具无法下载安装包的问题 Golang

解决 gvm 工具无法下载安装包的问题

GVM(Go Version Manager) 是一款用于管理和切换不同 Go 语言版本的工具。它允许用户在同一台计算机上轻松安装、使用和管理多个 Go 版本,同时还能确保项目之间的依赖关系井然有序。 GVM 的主...
国内几个优质的Go Module代理仓库服务 Golang

国内几个优质的 Go Module 代理仓库服务

一、简介 go module 公共代理仓库,代理并缓存 go 模块。你可以利用该代理来避免 DNS 污染导致的模块拉取缓慢或失败的问题,加速你的构建。 简单来说就是国内访问被墙,go get 无法在线获取到仓库,...
socket多路IO复用之select模型 C/C++

socket 多路 IO 复用之 select 模型

select 模型是 socket 中的一种多路 IO 复用模型之一,通过轮询的方式来完成多路访问控制。 一个很简单的例子来描述 select 模型: 幼儿园老师要照顾所有的小朋友,每天他都会轮流去问小朋友:「小朋...
TCP协议中的三次握手和四次挥手 TCP/IP

TCP 协议中的三次握手和四次挥手

一、三次握手 TCP 协议的三次握手和四次挥手分别表示了 TCP 连接的建立和释放过程,在整个 TCP 协议是一个很重要的内容,同时也是面试时的常见考点。 趁着找工作的劲,使用 socket+tcpdump 分析了...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证