
网络编程
文章平均质量分 93
justkong
专注于网络通信,音视频处理
展开
-
大小端模式和结构体中成员变量的内存分布
一.大端模式和小端模式计算机系统中,每个地址单元对应一个字节(8bit),一种数据类型可能占用多个字节,如何安排这种数据类型中的每个字节,哪个字节在低地址,哪个在高地址,以及每个字节中比特序在内存中的位置,这就涉及到大小端模式。一般情况下,字节序和比特序的排列规则是一致的。我们在书写和计算中数据数据分为高位和低位,高位在左边,低位在右边,例如0x6401中,0x64为高位,0x01为低位。...原创 2020-03-10 13:58:33 · 4875 阅读 · 1 评论 -
linux中epoll模型
epoll是linux内核为处理大批量文件描述符而作了改进的poll,是linux下IO复用select/poll的增强版本。一、epoll的主要接口是:1、创建(1)int epoll_create(int maxfds);maxfds是支持的最大句柄数。该函数会返回一个新的epoll句柄,之后的函数调用都用这个句柄来操作。用完之后,记得用close()关闭这个创建出来的epol...原创 2017-07-17 19:41:00 · 141 阅读 · 0 评论 -
网络编程中select模型和poll模型学习(linux)
一、概述并发的网络编程中不管是阻塞式IO还是非阻塞式IO,都不能很好的解决同时处理多个socket的问题。操作系统提供了复用IO模型:select和poll,帮助我们解决了这个问题。这两个函数都能够允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或者经历一段指定的时间后才唤醒它。二、select模型1、函数定义2、函数解析(1)maxfd1参数指定待...原创 2017-07-17 17:05:00 · 242 阅读 · 0 评论 -
Unix下5种I/O模型
Unix下I/O模型主要分为5种:(1)阻塞式I/O(2)非阻塞式I/O(3)I/O复用(select和poll)(4)信号驱动式I/O(5)异步I/O1、阻塞式I/O模型unix基本的套接字接口,例如:connect、accept、read/write、recv/send、recvfrom/sendto、recvmsg/sendmsg,它们默认是阻塞的。2、非...原创 2017-07-17 09:45:00 · 173 阅读 · 0 评论 -
UDP/TCP拾遗
1.UDP的特点(1)UDP 是无连接的,即发送数据之前不需要建立连接。(2)UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。(3)UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。(4)UDP 支持一对一、一对多、多对一和多对多的交互通信。(5)UDP 的首部开销小,只有 8个字节。(6)发送方 UDP 对应用程序交下来的报文,在添加...原创 2017-07-17 09:37:00 · 132 阅读 · 0 评论 -
linux中fd_set的内部实现
一、在网络编程中,经常用到selec系统调用来判断套接字上是否存在数据可读,或者能否向一个套接字写入数据。其原型为: int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);其中,fd_set是一个socket集合,常用如下宏来对fd_set进行...转载 2019-08-13 17:12:32 · 866 阅读 · 0 评论