socket
文章平均质量分 64
le119126
这个作者很懒,什么都没留下…
展开
-
socket异步通信-非阻塞模式(异步非阻塞)
将一个socket 设置成阻塞模式和非阻塞模式,使用fcntl方法,即:设置成非阻塞模式:先用fcntl的F_GETFL获取flags,用F_SETFL设置flags|O_NONBLOCK; 即: flags = fcntl(sockfd, F_GETFL, 0); //获取文件的flags值。转载 2014-07-07 15:57:37 · 4230 阅读 · 0 评论 -
借shared_ptr实现copy on write 以减少锁的使用
shared_ptr是引用计数智能指针,如果当前只有一个观察者,那么引用计数为1,可以用shared_ptr::unique()来判断对于write端,如果发现引用计数为1,这时可以安全地修改对象,不必担心有人在读它。对于read端,在读之前把引用计数加1,读完之后减1,这样可以保证在读的期间其引用计数大于1,可以阻止并发写。比较难的是,对于write端,如果发现引用计数大于1,该如何转载 2015-03-11 09:33:30 · 588 阅读 · 0 评论 -
socket的I/O复用
socket 读、写、异常事件发生后的条件1.可读 socket读缓冲区有数据可读 对方的读一半关闭(对方用shutdown关闭读,或者正常调用close关闭掉socket,我们将收到FIN段,读操作会返回0) 如果是监听socket,已完成连接队列不为空时 socket发生一个错误待处理(错误可以通过ge转载 2015-04-04 16:48:23 · 593 阅读 · 0 评论 -
socket函数和I/O函数的一些知识点
一.socket地址#include原创 2014-07-07 15:53:49 · 627 阅读 · 0 评论 -
linux下UDP编程
1.UDP数据包接收时,应用层的socket的接收buf如果小于到达包的大小,那buf中就只存储可接收的大小,这个包余下数据会被丢弃,再也收不到。2.recvfrom返回0 ,并不代表对方关闭socket,对方可以发送0个长度空包3.如果客户端没有先使用connect设置通信的对方地址 a。那必须使用sendto 、recvfrom b。即使服务器没有开,sendt原创 2015-04-05 21:44:52 · 707 阅读 · 0 评论 -
线程进程通知
进程线程的等待通知:pipe :单向socketpair:双向eventfdeventfd 是一个比 pipe 更高效的线程间事件通知机制,一方面它比 pipe 少用一个 file descripor,节省了资源;另一方面,eventfd 的缓冲区管理也简单得多,全部“buffer” 只有定长8 bytes,不像 pipe 那样可能有不定长的真正 buffer。线程转载 2015-03-04 10:50:03 · 775 阅读 · 0 评论 -
linux传递文件描述符
http://blog.csdn.net/linuxdianc/article/details/5048189在进程之间经常遇到需要在各进程之间传递文件描述符的情况,例如有一种设备它在加电期间只能打开一次,如果关闭后再次打开就会发生错误。这时就需要有一个调度程序,它调度多个相同设备,当有客户端需要此类型的设备时会向它发送一个请求,服务器会把某个设备的描述符给客户端。转载 2015-04-06 12:06:42 · 2218 阅读 · 0 评论