搜索
Ctrl K
计算机技术
生活
力扣
豆瓣读书
#网络编程
主机字节序和网络字节序
在网络编程中,数据收发的过程中有自动转换机制,不需要程序员手动转换,只有向 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
2
3
我
们
应
该
坚
守
正
确
的
道
路
,
而
不
是
看
似
正
确
的
道
路
,
可
有
太
多
不
深
思
的
人
误
入
歧
途
了
朋友
个人原创作品集
推荐机场(用多少买多少,不重置)
极客兔兔
Rainer Grimm(并发编程)
爱编程的大丙
谭升的博客
杜老师说
第二学堂
清和
祈星海
太傅博客
今今今生
笨鸟教程
draveness
incredibuild
Tangly的学习笔记
KashiwaのBlog
deepin
鸟窝
文件转换免费网站
yihui
wpfx网盘分享
ArthurChiao's Blog
得物技术
火龙果
计算机技术学习笔记
kaito
筱晶IT知识库
wuli.wiki
skynet教程
分享Java+MySQL+Redis教程
libhv网络库教程
C++后端开发进阶教程
申请友链
账号
Github
哔哩哔哩
联系
| 由
Hexo
及
致远
驱动