网络编程
文章平均质量分 73
小菜C不是菜
好记性不如烂笔头 多记多写多总结
展开
-
IO - 同步,异步,阻塞,非阻塞,转小米大神的
转:http://blog.csdn.net/historyasamirror/article/details/5778378 当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。 《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非常开心的,也说转载 2012-09-04 11:03:48 · 757 阅读 · 0 评论 -
boost::asio设置同步连接超时
asio自带的例子里是用deadline_timer的async_wait方法来实现超时的,这种方法需要单独写一个回调函数,不利于把连接和超时封装到单个函数里。传统的Winsock编程可以先把socket设为非阻塞,然后connect,再用select来判断超时,asio也可以这样做,唯一“非主流”的是asio里没有一个类似select的函数,所以得调用原始的Winsock API,也就牺牲了跨平转载 2012-09-04 10:51:42 · 5458 阅读 · 0 评论 -
关于socket的一些初步研究
这些天在研究Tornado的源码,说实话它的代码过于艰深了,需要绕很多弯才能弄清。 我想其中的问题主要是我不太懂socket,于是就花了些时间学习socket,算是有了些收获,顺便记录在此。 首先是socket的概念。实 际上UNIX的设计者很喜欢用类似的方式来处理一类任务,其中数据传输就都被抽象成文件,包括磁盘文件、管道、FIFO和终端等。而socket则是用于连接不同机器或进转载 2012-09-11 13:19:57 · 671 阅读 · 0 评论 -
设置socket的Connect超时
1.首先将标志位设为Non-blocking模式,准备在非阻塞模式下调用connect函数 2.调用connect,正常情况下,因为TCP三次握手需要一些时间;而非阻塞调用只要不能立即完成就会返回错误,所以这里会返回EINPROGRESS,表示在建立连接但还没有完成。 3.在读套接口描述符集(fd_set rset)和写套接口描述符集(fd_set wset)中将当前套接口置位(用FD_ZER原创 2012-09-04 11:00:43 · 1830 阅读 · 0 评论