UNIX网络编程
搬砖小能手lp
这个作者很懒,什么都没留下…
展开
-
关于errno = EINTR的小结
如果read()读到数据为0,那么就表示文件读完了,如果在读的过程中遇到了中断则read()应该返回-1,同时置errno为EINTR。 因此判断read的条件如下:if <=0 { if==0 { 表示文件结束, 处理 } if(<0 && errno==EINTR) { 表示中断,处理转载 2015-12-30 09:44:27 · 2616 阅读 · 0 评论 -
广播与多播详解(一)
广播广播是指在一个局域网中向所有的网上节点发送信息。这是UDP连接的一种广播有一个广播组,即只有一个广播组内的节点才能收到发往这个广播组的信息。什么决定了一个广播组呢,就是端口号,局域网内一个节点,如果设置了广播属性并监听了端口号A后,那么他就加入了A组广播,这个局域网内所有发往广播端口A的信息他都收的到。在广播的实现中,如果一个节点想接受A组广播信息,那么就要先将他绑定给地址和端转载 2015-12-03 19:49:25 · 1530 阅读 · 1 评论 -
多播与广播详解(二)
本文讨论基于TCP/IP下的组播编程基础。所有的例子都可以Windows下台运行。本文不会涉及到组播协议的实现,只是讨论组播编程需要的环境及API函数。关于组播的实现和需要的协议笔者将会另写文章讨论。组播描述 组播(Multicast)是网络一种点对多(one to many)的通信方式,通过报文复制完成网络中一台server对应多台接收者的高效数据传送。对其形象的比喻就是类似于广播转载 2015-12-03 19:52:48 · 510 阅读 · 0 评论 -
select、poll、epoll之间的区别总结及相关资料整理
select,poll,epoll都是IO多路复用的机制。IO多路复用就是通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select、poll、epoll本质上都是同步IO在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步IO则无需自己负责进行读写,异步IO的实现会负责把数据从内核拷贝到用户的空间。关于这三转载 2016-01-26 16:17:12 · 427 阅读 · 0 评论 -
linux使用select实现精确定时器详解
在windows下,最好不要用select进行定时器的设定。 本文讲述如何使用select实现超级时钟。使用select函数,我们嫩固始县微妙级别精度的定时器。同时,select函数也是我们在编写非阻塞程序经常使用到的一个函数在编写程序时,我们经常会用到定时器。首先看看select函数原型如下:int select(int maxfdp1,fd_set*rea转载 2016-01-26 18:53:15 · 1632 阅读 · 0 评论