随笔分类 - Network
摘要:关于非阻塞connnect的总结 在面试题中,看到有关于阻塞connect和非阻塞connect的区别; 显然,我们可以从阻塞和非阻塞的意思来回答,既然是阻塞,那么执行connect的操作会一直阻塞到连接超时或者连接成功才会返回相应的信息,而非阻塞connect则不管是否连接成功,都会立即返回信息。
阅读全文
摘要:read/write read:负责从描述符fd中读取内容,当读取成功时,read返回实际所读的字节数(大于0);如果返回的值为0,表示已经读到文件结束了;如果返回的值小于0,则出现错误,如果错误为 ,说明错误是由中断引起的,如果是 表示网络连接出了问题。 write:将buf中的nbytes字节内
阅读全文
摘要:原生API select 函数参数 numfds:文件描述符的最大值+1(为了限制检测文件描述符的范围) readfds:包含所有因为状态变为可读而触发select函数返回文件描述符 writefds:包含所有因为状态变为可写而触发select函数返回文件描述符 exceptfds:包含所有因为状态
阅读全文
摘要:阻塞和非阻塞,同步和异步 1 例子 故事:老王烧开水。 出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。 老王想了想,有好几种等待方式 1.老王用水壶煮水,并且 站在那里 , 不管水开没开,每隔一定时间看看水开了没 。- 同步阻塞 老王想了想,这种方法不够聪明。 2.老王还是
阅读全文
摘要:前言 说来惭愧,大二时候学的计算机网络好多都不太记得了,不过还好有认真学过,捡起来也挺快的,就是对于现在业界中使用的网络算法的不是很懂; 1 TCP报文段结构 1.1 序号和确认号 序号,是报文段首字节的字节流编号; 确认号,是发送端期望从接收端收到的下一个字节的序号; TCP只接受数据流中国至第一
阅读全文
摘要:前言 在没有理解TCP连接是如何建立和终止之前,我想你可能并不会使用connect,accept,close这三个函数并且使用netstat程序来调试应用。所以掌握TCP连接的建立和终止势在必行。 三次握手 1. 客户端首先通过调用connect函数发起主动打开(服务器为被动打开),这导致客户端TC
阅读全文
摘要:简介 本文主要介绍的socket编程的实现相关的内容; 理论 函数 socket 用来创建socket描述符,它唯一标识一个socket 客户端和服务器都要进行的操作 bind 通常服务器在启动的时候都会绑定一个众所周知的地址(如ip地址+端口号),用于提供服务,客户就可以通过它来接连服务器;而客户
阅读全文