网络编程
GamebabyRockSun_QQ
曾经拥有的,不要忘记,
已经得到的,更要珍惜,
属于自己的,不要放弃,
已经失去的,留着回忆,
想要得到的,必须努力,
但最重要的,是好好爱惜自己!
展开
-
IOCP编程之重叠IO
其实这个标题有点“标题党”的味道,为了大家搜索方便我故意冠以IOCP编程之名,其实重叠IO编程并不一定需要IOCP,而IOCP编程就一定需要重叠IO。是不是已经被这句话给绕晕了?总之是为了更好的应用IOCP,所以要理解重叠IO。这篇文章的核心就是讨论重叠IO的来龙去脉。在很久很久以前,在用C语言写DOS程序的年代,就有了很完整的IO标准库支撑,printf输出字符到屏幕,fopen,fwrit...原创 2017-10-10 14:19:23 · 565 阅读 · 0 评论 -
IOCP+WinSock2新函数打造高性能SOCKET池
在前一篇文章《WinSock2编程之打造完整的SOCKET池 》中,介绍了WinSock2的一些新函数,并重点详细介绍了什么是SOCKET池,有了这个概念,现在就接着展开更深入的讨论。首先这里要重点重申一下就是,SOCKET池主要指的是使用面向连接的协议的情况下,最常用的就是需要管理大量的TCP连接的时候。常见的就是Web服务器、FTP服务器等。下面就分步骤的详细介绍如何最终实现SO...原创 2017-10-10 14:18:31 · 580 阅读 · 2 评论 -
WinSock2编程之打造完整的SOCKET池
在Winodows平台上,网络编程的主要接口就是WinSock,目前大多数的Windows平台上的WinSock平台已经升级到2.0版,简称为WinSock2。在WinSock2中扩展了很多很有用的Windows味很浓的SOCKET专用API,为Windows平台用户提供高性能的网络编程支持。这些函数中的大多数已经不再是标准的“Berkeley”套接字模型的API了。使用这些函数的代价...原创 2017-10-10 14:18:19 · 493 阅读 · 0 评论 -
IOCP编程之基本原理
在我的博客之前写了很多关于IOCP的“行云流水”似的看了让人发狂的文章,尤其是几篇关于IOCP加线程池文章,更是让一些功力不够深厚的初学IOCP者,有种吐血的感觉。为了让大家能够立刻提升内力修为,并且迅速的掌握IOCP这个Windows平台上的乾坤大挪移心法,这次我决定给大家好好补补这个基础。要想彻底征服IOCP,并应用好IOCP这个模型,首先就让我们穿越到遥远的计算机青铜器时代(以出现PC为...原创 2017-10-10 14:18:40 · 570 阅读 · 0 评论 -
Windows2008新IOCP线程池学习笔记
今天兴冲冲开始琢磨Windows2008新线程池中的IOCP部分新增的API的调用,也就是新的完成端口的调用方式,新的API如下:CancelThreadpoolIoCloseThreadpoolIoCreateThreadpoolIoStartThreadpoolIoWaitForThreadpoolIoCallbacks这几个函数其实从名字并不难理解其调用方...原创 2017-10-10 14:19:53 · 618 阅读 · 1 评论 -
WinSock TCP keepalive的机理及使用(自动心跳包的发送)
TCP是面向连接的,在实际应用中通常都需要检测对端是否还处于连接中。如果已断开连接,主要分为以下几种情况: 1. 连接的对端正常关闭,即使用closesocket关闭连接。2. 连接的对端非正常关闭,包括对端异常关闭,网络断开等情况。对于第一种情况,很好判断,但是对于第二种情况,可能会要麻烦一些。在网上找到了一些文章,大致有以下两种解决方法:? 自己编写心跳包程序简单的说也...原创 2017-10-10 14:20:50 · 2860 阅读 · 0 评论 -
【原创】IOCP编程之聚集散播
做为IOCP应用中重要的一个方法就是被称为“聚集-散播”的方法。非常遗憾的是在很多介绍IOCP使用的资料中,我几乎没有见过有专门介绍此方法的文章,因此本文就重点讲述此方法。在使用IOCP操作大量的TCP连接并处理IO请求的时候,一个很让我们头疼的事情就是所谓的“粘包”问题,即当发送方发送的数据包尺寸小于接收方缓冲,同时又连续发送数据的情况下,两个数据包被一起接收,接收端就需要将包重新拆分,如果...原创 2017-10-10 14:23:29 · 498 阅读 · 2 评论