C/C++ socket多路IO复用之select模型 select模型是socket中的一种多路IO复用模型之一,通过轮询的方式来完成多路访问控制。 一个很简单的例子来描述select模型: 幼儿园老师要照顾所有的小朋友,每天他都会轮流去问小朋友:“小朋... 04月09日评论 阅读全文
TCP/IP TCP协议中的三次握手和四次挥手 一、三次握手 TCP协议的三次握手和四次挥手分别表示了TCP连接的建立和释放过程,在整个TCP协议是一个很重要的内容,同时也是面试时的常见考点。 趁着找工作的劲,使用socket+tcpdump分析了... 04月09日评论 阅读全文
C/C++ socket网络编程一:socket介绍及函数原语 socket计算机中的一种网络传输机制,对TCP和UDP的封装,自动帮我们在底层完成各种协议操作,接收到数据包后返回到上层应用。 socket分为客户端和服务端,它的工作模型为: (更多&hellip... 03月09日评论 阅读全文
Golang Golang的socket编程(四):解决粘包问题及制定通信协议 一、概述 前面已经完成了一个完美的多并发CS模型,但美中不足的是没有解决粘包问题。 1.1 什么是粘包问题? 在网络传输中,数据都是通过数据流来传输的,也就是以比特来传输。传输的过程中我们可能会遇到各... 09月13日评论 阅读全文
Golang Golang的socket编程(三):并发Server-Client 一、概述 上一篇实现了一个server和client通信,完成了小写转大写的功能,但是是一个单任务式的响应:客户端发送连接接收响应,程序结束;服务端则接收数据响应数据也结束!就实际需要而言,并没有很大... 09月13日评论 阅读全文
Golang Golang的socket编程(二):简单client-server 一、概述 上一篇介绍了基本的函数和结构类型,这里就可以开始写服务端和客户端通信小程序了,通信的基本的流程如下: 如果服务端使用Listen来监听,那么可以不用ResolveTCPAddr函数。 现在我... 09月12日评论 阅读全文
Golang Golang的socket编程(一):常用数据结构和函数介绍 工作的原因接触到socket,要使用socket实现一个长连接。之前只在C/C++上用过socket,而且在学校的时候也只是简单的做聊天室小程序,并没有涉及到长连接。突然用到工作项目上,心里还是有点悬... 09月12日评论 阅读全文