随笔分类 -  网络编程

摘要:setsockopt小结  1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用  closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:  BOOL bReuseaddr=TRUE;  setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReus... 阅读全文
posted @ 2009-11-21 15:59 辛勤耕耘 阅读(420) 评论(0) 推荐(0)
摘要:在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明: #define __FD... 阅读全文
posted @ 2009-07-22 16:25 辛勤耕耘 阅读(5734) 评论(1) 推荐(1)
摘要:如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择 (WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。程序员应该对自己的应用需求非常明确,而且综合考... 阅读全文
posted @ 2009-07-16 13:02 辛勤耕耘 阅读(1829) 评论(0) 推荐(2)
摘要:重叠I/O一.重叠模型的优点1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。2. 比起阻塞、select、WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性能。 因为它和这4种模型不同的是,使用重叠模型的应用程序通知缓冲区收发系统直接使用数据,也就是说,如果应... 阅读全文
posted @ 2009-07-15 13:49 辛勤耕耘 阅读(3376) 评论(0) 推荐(0)
摘要:原文完整内容通常,socket编程总是Client/Server形式的,因为有了telnet,先不考虑client的程序,先写一个支持TCP协议的server端,然后用telnet作为client验证我们的程序。TCP server端的基本流程 想象你自己是个小大佬,坐办公室(什么样的黑社会做办公室啊?可能是讨债公司吧^^)你很土,只有一个小弟帮你接电话(因为你自己的号码是不敢对外公开的)。一次通... 阅读全文
posted @ 2009-07-11 15:52 辛勤耕耘 阅读(4232) 评论(1) 推荐(1)
摘要:原文看完整内容 首先,Windows套接字在两种模式下执行I / O操作:锁定和非锁定。 在锁定模式下,在I / O操作完成前,执行操作的Wi nsock函数(比如send和recv)会一直等候下去,不会立即返回程序(将控制权交还给程序)。而在非锁定模式下, Wi nsock函数无论如何都会立即返回。1 锁定模式 耗费或长或短的时间“等待”。 大多数Wi nsock应用... 阅读全文
posted @ 2009-07-11 09:35 辛勤耕耘 阅读(2291) 评论(0) 推荐(2)
摘要:套接字编程基础一种双向的通信端口。位于网络中的主机通过连接的套接字提供的接口进行数据传输。套接字与端口套接字是一种使用标准UNIX文件描述符(file descriptor)与其他程序通信的方式。套接字可以看作是处于不同主机之间的两个程序的通信连接端点。一方面程序将要传输的信息写入套接字中,而另一方面则通过读取套接字内的数据来获得传输的信息。图所示为使用套接字进行通信的示意图。假设存在两台主机A与... 阅读全文
posted @ 2009-06-18 18:39 辛勤耕耘 阅读(931) 评论(0) 推荐(0)