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