- 博客(17)
- 资源 (18)
- 收藏
- 关注
原创 Windows Sockets网络编程(4)套接字重叠IO模型
摘要:上一篇文章《Windows Sockets网络编程(3)WSAEventSelect模型开发》事件通知的Select模型,较之该文《Windows Sockets网络编程(1)TCP select & thread》中单纯的select模型有了很大的改进,其中一个最大的优点就是解决了Select不能被用户主动触发的问题。但是,还是存在不少缺陷。试想这样的情景:一般网络通信的这样的,①...
2017-07-29 00:03:59 1285
原创 Windows APC机制 & 可警告alertable的线程等待状态
摘要:Windows APC的全称为(asynchronous procedure call)翻译为中文即“异步过程调用”。《Windows APC机制(一)》、《谈谈对APC的一点理解》、《线程的Alertable与User APC》主要阅读了这三篇文章,对APC有了个大概了解:1) APCs允许用户程序和系统元件在一个进程的地址空间内某个线程的上下文中执行代码。2) I/O管理器使用A...
2017-07-28 01:06:23 3018
原创 Windows Sockets网络编程(3)WSAEventSelect模型开发
WSAEventSelect模型是非阻塞的,该模型允许在一个或者多个套接字上接收以事件为基础的网络事件通知。Windows Sockets应用程序在创建套接字后,调用WSAEventSelect()函数,将一个事件对象与网络事件集合关联在一起。当网络事件发生时,应用程序以事件的形式接收网络事件通知。创建TCP这里不再赘述了,能来到本文的,相信基本功已经不用多讲了。实在不明白的可以阅读《Windows Sockets网络编程(0)TCP In Action》一文,该文详细的叙述了TCP创建的整个过
2017-07-25 08:49:52 2215 1
原创 HTTP协议:socket处理ajax请求?
本文的主要内容是:使用socket(TCP连接)实现HTTP协议并充当服务端,对ajax的HTTP请求进行处理。
2017-07-23 10:22:00 4016
原创 GoF23设计模式(0)单例模式Singleton
“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”——《设计模式》(艾迪生维斯理, 1994)。
2017-07-22 23:15:34 533
原创 浅谈C++ 字符串类 —— string类
C++ string类的编写,牵涉最多的就是内存管理了。对此不太了解的,推荐阅读《C++ 构造函数执行原理》、《 C++ 拷贝构造函数》两篇文章,在文中有详细介绍了类的创建及销毁过程。同时,阐述了拷贝构造函数的调用时机。在此基础上,需要学习如何进行运算符重载以及学习const的相关用法,该文《C++ 修饰符const、static、extern、ref、volatile、explicit总结》中的const部分,阐述十分详尽并附带案例。学习起来很方便。在这些知识的基础上,那么就开始动手构建String类吧。
2017-07-20 21:21:40 1197
原创 Windows并发&异步编程(3)临界区Critical Section
临界区在并发编程中是一个非常重要的概念,有些时候也被叫做关键段。每个进程中访问临界资源的那段代码称为临界区(Critical Section)(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。临界区编程主要涉及有5个函数:初始化临界区Initial
2017-07-17 23:16:41 1195
原创 浅谈C++ 标准库中的异常 —— stdexcept类
<stdexcept>定义了一些标准的异常类。分为两大类:逻辑错误和运行时错误。其中运行时错误是程序员不能控制的。
2017-07-16 00:22:12 12668 2
原创 Windows并发&异步编程(2)原子操作Interlocked
阅读过《操作系统》一书的人都知道“原子操作”这一概念。在计算机中,原子操作又称为原语,操作系统保证:“原子操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断。”。原子操作可以是一个步骤,也可以是多个操作步骤,但是其执行期间不会有任何线程调度。
2017-07-15 17:27:11 2915
原创 Windows并发&异步编程(1)JAVA&多线程
本文在基于C/C++/Windows相关知识的基础上,初步封装一个像JAVA一样的多线程类–Win32Thread。使操作线程能像JAVA一样两步搞定。
2017-07-15 13:27:02 1130
原创 Windows并发&异步编程(0)创建、终止进程
上大学那会,知道进程是分配资源的最小单位,而线程是处理机分配的最小单位(执行最小单位)。很多时候创建进程是一种极大的浪费,但是有时候创建进程是必要的。一种很常见的情况,在程序运行时,需要运行一个其他的exe程序,这时候可以创建进程,Windows中使用CreateProcess创建一个进程….
2017-07-15 13:21:35 1319
原创 C++ 修饰符const、static、extern、ref、volatile、explicit总结
C++里面有不少知识点是与其本身的关键字紧密结合的。本文即讲到了常用的const、static、ref、enum,也会介绍一些不太常用或者一些较新的关键词:extern、volatile、auto、decltype、constexpr、explicit,最后再附带介绍了一下C++正则regex方面的知识。这里注意ref包括左值引用、右值引用两大部分,其中右值引用一般较少见。
2017-07-15 13:09:30 2048
原创 Windows Sockets网络编程(2)TCP Stream拆分、拼接
TCP与UDP有一个很大的不同,UDP数据包是一包一包到达目的地的,而TCP却是流式传输的。也就是相邻两个TCP包是没有界限的。这就需要使用TCP传输的程序猿定义好数据包的格式。SOCKET编程中,recv所获得的部分仅是数据体(body),而TCP头部对程序猿是透明的。所以,发送TCP数据包时一般是使用这样的格式:数据包=数据包体长度+数据包体。
2017-07-13 23:42:08 3959
原创 C++14 智能指针unique_ptr、shared_ptr、weak_ptr
内存控制这一大毒瘤,几乎一致伴随着C/C++工程师。随着计算机技术的发展,在boost准标准库的推动下,C++11终于将unique_ptr、shared_ptr、weak_ptr这几类智能指针纳入C++中。当然,在这之前还有一种auto_ptr智能指针,不过由于它的设计存在较大问题(比如:auto_ptr与STL不兼容),现阶段已经很少能看到它的出现了。
2017-07-09 11:30:09 15897 5
原创 KFC宅急送点餐系统开发 & MFC动态树形控件使用
本文写于该系统开发完成后的第二年,那时候博主大2,有一门名为《程序设计方法学》的课程,老师上课很幽默风趣,也经常给我们带来一些时事新闻。当然,课余也会给我们布置一些作业。其中“KFC宅急送点餐系统开发”就是该作业中的一次。隐约记得当时的要求是这样的:仿照KFC网站的页面,设计出的自己的C/S模式的 KFC宅急送 系统,要求用到设计模式的知识。
2017-07-08 10:13:37 2450 2
原创 Windows Sockets网络编程(0)TCP In Action
在谢希仁的《计算机网络》一书中,详尽的学习了网络协议七层塔。也明白了在TCP/IP协议中,可靠性是由传输层来保证的,而传输层的两大协议UDP与TCP,都是在基于网络层IP协议的基础上首次提供端到端的通信。其中,UDP是使用数据报提供服务的,而TCP则提供可靠的流服务。UDP提供的是不可靠的服务(相当于篮球运动员,直接将球扔向篮筐,不关注结果),TCP提供的是可靠的服务...
2017-07-07 23:09:37 1706 3
原创 Windows Sockets网络编程(1)TCP select & thread
select在socket通信中有着举足轻重的地位,这要先从recv谈起。既然来到了本文,就默认你已经明白了send/recv阻塞式通信了,如果不太了解可以先阅读《Windows Sockets网络编程(0)TCP In Action》。这种阻塞式通信,存在一个很大的问题:“假设需要建立两条以上的TCP/UDP通信,那么recv该如何弄?”。很常见的方式是多线程?回答很正确。
2017-07-07 23:05:32 2235
朴素贝叶斯分类算法
2015-06-23
数据挖掘十大算法之k-means算法
2015-06-22
Appriori算法
2015-06-22
数据挖掘:ID3算法
2015-06-21
KFC宅急送系统
2015-06-19
【GitHub-SwipeMenuListView】针对ListView item的侧滑菜单
2015-03-18
Android PopupWindow使用示例
2015-01-11
SQLiteDemo
2015-01-10
Android中Application类用法
2015-01-10
Viewbadger 实现消息数字提示
2015-01-09
gson-2.2.4.jar
2014-12-07
科学计算器(简化版:基于MFC对话框)
2014-11-25
计算机图形学 Cohen- Sutherland直线段裁剪算法
2014-11-05
多边形有效边表填充算法
2014-10-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人