搜索
Ctrl K
计算机技术
学科知识库
生活
力扣
豆瓣读书
计算机技术
A repository for computer technology articles
Asio
C
C++11新特性
C++性能优化
CMake
CPP
Clion
Linux
MySQL
Nginx
OS
Qt
Redis
STL
Tools
Vim
函数式编程
分布式
原子变量和内存模型
基础组件
并发编程
微服务
技术摘录
技术杂文
操作系统导论
数据结构与算法
模板元编程
深入理解计算机系统
源码剖析
网络编程
计算机组成原理
设计模式
网络编程中结构体的区分
sockaddr 结构体是为了统一地址结构的表示方法,统一接口函数,但是这个结构体并不方便使用,因此定义了等价的 sockaddr_in 结构体,它的大小和 sockaddr 结构体相同,可以强制转换成 sockaddr。因此,在实际的网络编程中,先定义 sockaddr_in结构体把相关信息存储之后,再强制转换成 sockaddr,毕竟提供的API接受的类型是 sockaddr
#网络编程
主机字节序和网络字节序
在网络编程中,数据收发的过程中有自动转换机制,不需要程序员手动转换,只有向 sockadd_in 结构体成员变量填充数据时,才需要考虑字节序的问题
#网络编程
服务器应该设置SO_REUSEADDR选项
有些人,而且包括很多写书的人,都认为设置SO_REUSEADDR是很危险的,因为这样就允许创建相同的TCP四元组了,会引发问题。这种看法是不对的。在写网络服务器的时候,我们务必设置SO_REUSEADDR选项,这对我们有益无害
#网络编程
理解TCP的有序释放操作
有序释放的目的是确保两端都能在连接拆除之前收到所有来自其对等实体的数据
#网络编程
理解TCP的写操作
对 TCP 连接使用写操作时,最好将写操作理解成将数据复制到发生队列,并通知 TCP 此队列中有新数据的一种操作。实际上,写操作返回时,写操作写出的部分或全部数据可能还在排队等待传输,所以,此时不管是主机还是对等应用程序崩溃了,数据都会丢失
#网络编程
要认识到TCP是一个可靠的,但并不绝对可靠的协议
我们会误以为只要基于 TCP 编程,那么通信的数据必然能够到达对端主机,毕竟 TCP 是可靠的传输协议。然而, TCP 是处在传输层的协议,其可靠性只针对传输层,但是消息最终要达到应用层才算有价值。从传输层到应用层的消息会不会出现问题,可不由 TCP 来保证
#网络编程
记住:TCP是一种流协议
TCP 是一种流协议,这就意味着数据是以字节流的形式传递给接收者的,没有固有的”报文”或”报文边界”的概念。从这方面来说,读取 TCP 数据就像从串行端口读取数据一样——无法预先得知在一次指定的读调用中会返回多少字节
#网络编程
基本套接字 API 的回顾
网络编程必备的基础 API 应用知识
#网络编程
记住:TCP不是轮询的
TCP 不提供连接丢失即时通知最重要的原因与其主要设计目标之一有关:出现网络故障时维护通信的能力。国防部赞助的一项研究要提供一种即使在发生战争或自然灾害这种严重网络损坏的情况下,也能维护可靠网络通信的网络协议,TCP就是这种研究的产物
#网络编程
理解面向连接和无连接协议之间的区别
它们的本质区别在于,对无连接协议来说,每个分组的处理都独立于所有其他分组,而对面向连接的协议来说,协议实现则维护了与后继分组有关的状态信息
#网络编程
1
…
14
15
16
17
我
们
应
该
坚
守
正
确
的
道
路
,
而
不
是
看
似
正
确
的
道
路
,
可
有
太
多
不
深
思
的
人
误
入
歧
途
了
朋友
个人原创作品集
推荐机场(用多少买多少,不重置)
爱编程的大丙
杜老师说
清和
祈星海
太傅博客
今今今生
保罗的小宇宙
笨鸟教程
draveness
incredibuild
Tangly的学习笔记
KashiwaのBlog
deepin
鸟窝
陈树义的博客
文件转换免费网站
yihui
wpfx网盘分享
ArthurChiao's Blog
得物技术
火龙果
计算机技术学习笔记
kaito
筱晶IT知识库
wuli.wiki
skynet教程
分享Java+MySQL+Redis教程
libhv网络库教程
C++后端开发进阶教程
申请友链
账号
xiaoyangst
联系
| 由
Hexo
及
致远
驱动