博客
关于我
高并发C/S的TCP版本golang实现
阅读量:267 次
发布时间:2019-03-01

本文共 1122 字,大约阅读时间需要 3 分钟。

Go?????????????????????????????????????????

???????????????????????????Go?????????????????????????????? goroutine ??????????????????????

package mainimport (	"fmt"	"net"	"strings")// ???Read???????0 ??????func main() {	// ???????	listener, err := net.Listen("tcp", "127.0.0.1:8001")	if err != nil {		fmt.Println("listen err", err)		return	}	defer listener.Close()	for {		// ?????????		fmt.Println("??????????")		conn, err := listener.Accept()		if err != nil {			fmt.Println("listener.Accept err", err)			return		}		// ????????????????		go HandlerConnect(conn)	}}func HandlerConnect(conn net.Conn) {	defer conn.Close()	// ????????Addr	addr := conn.RemoteAddr()	fmt.Println(addr, "???????---")	// ???????????	buf := make([]byte, 4096)	for {		n, err := conn.Read(buf)		if n == 0 {			fmt.Println("?????????????????")			return		}		if err != nil {			fmt.Println("conn Read err", err)			return		}		fmt.Println("????????", string(buf[:n]))		// ???????		conn.Write([]byte(strings.ToUpper(string(buf[:n])))	}}

???????????Go???????????????????????????????? goroutine ??????????????????? goroutine ???????????Go????????

转载地址:http://eqpv.baihongyu.com/

你可能感兴趣的文章
NVIDIA GPU 的状态信息输出,由 `nvidia-smi` 命令生成
查看>>
nvidia 各种卡
查看>>
Nvidia 系列显卡大解析 B100、A40、A100、A800、H100、H800、V100 该如何选择,各自的配置详细与架构详细介绍,分别运用于哪些项目场景
查看>>
NVIDIA-cuda-cudnn下载地址
查看>>
nvidia-htop 使用教程
查看>>
nvidia-smi 参数详解
查看>>
Nvidia驱动失效,采用官方的方法重装更快
查看>>
nvmw安装node-v4.0.0之后版本的临时解决办法
查看>>
nvm切换node版本
查看>>
nvm安装 出现 Error retrieving “http://xxxx/SHASUMS256.txt“: HTTP Status 404 解决方法
查看>>
nvm安装以后,node -v npm 等命令提示不是内部或外部命令 node多版本控制管理 node多版本随意切换
查看>>
NXLog采集windows日志配置conf文件
查看>>
ny540 奇怪的排序 简单题
查看>>
NYOJ -216 A problem is easy
查看>>
NYOJ 1066 CO-PRIME(数论)
查看>>
NYOJ 737:石子合并(一)(区间dp)
查看>>
nyoj 91 阶乘之和(贪心)
查看>>
nyoj------203三国志
查看>>
NYOJ-525 一道水题
查看>>
NYOJ127星际之门(一)
查看>>