- 博客(12)
- 资源 (14)
- 收藏
- 关注
原创 C/S模型安全登录解决方案
身为信息安全专业的,还是写点与专业相关的博文吧。。嗯。 一般在C/S软件中,登录流程都设计的很复杂,比如QQ。一方面为了防止伪造客户端,而另一方面更重要的则是对信息加密,防止明文被截取。 下面介绍一种比较好的解决方案。 首先,加密算法首当其中选RSA了(因为每门专业课都要考它。。),先简单介绍下RSA原理: RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数( 大于 100个十进制位)
2009-12-22 22:37:00 2966
原创 多线程非阻塞服务器设计
接着上篇日志写。。一般在设计服务器时,都是非阻塞的,且为了简单,通常都设计为一个线程来操作。 但是这样设计的缺点也很明显,倘若服务器有很多连接,那么每次循环都会处理很多套接字,除了CPU使用率不高外,如果某个套接字的数据传输速度很慢,那么他的调用也会很慢(个人猜测,因为TCP传输速度是双向均衡的),从而势必会影响其他套接字的数据传输。 所以非阻塞+多线程是大型服务器必备的解决方案。 多线程操
2009-12-17 20:00:00 4067 1
原创 关于socket的多线程操作。
无意间想到的问题,随便记下,免得以后忘了。。 就是一般多线程操作socket是线程安全的,但是很显然,会导致数据包错乱。 悲剧的是,我的netway虽然是用线程池操作消息队列。但是我在消息里指定发送端套接字,如果某2个消息包含同样的目的套接字,而恰好这2个消息又同时被处理,那肯定就数据错误了。。 现在想想,如果非要多线程处理同一个套接字: 对于recv,可以对接收的数据块编号,最后按序排列
2009-12-15 21:08:00 4252 2
原创 递归问题整理
不敢说是总结,就是把自己看到的一些递归相关题目整理一下,并按照自己的理解归下类~ 单路递归(一个递归过程中只有一个递归入口) 多路递归(一个递归过程中有多个入口) 间接递归(函数可通过其他函数间接调用自己) 迭代递归(每次递归调用都包含一次循环递归) 下面一一整理,注意许多题目都有更优解法,如DP,但是暂不讨论。 先说说解递归的一般思路吧,把原
2009-12-14 15:34:00 2011
原创 转,WINSOCK编程细节。
无意间发现的一个超好的资源,详细介绍了网络编程的各种细节,强烈推荐给大家,相信你读完后肯定会对socket编程有更深层次的了解~~http://tangentsoft.net/wskfaq/ 我随便摘录了几个自己觉得比较好的~ Is Winsock thread-safe? On modern Windows stacks, yes, it is, within limits. It is
2009-12-13 20:29:00 1157
原创 NetWay简要开发文档0.1
NetWay 项目主页:http://code.google.com/p/netway 使用效果:http://blog.csdn.net/shallwake/archive/2009/12/04/4942099.aspx 一,结构概览: 首先看一下主要功能模块之间的关系,方框表示主要的类,椭圆表示该类完成的功能。 服务端 客户端 可以看出,服务端的逻辑模块为C
2009-12-10 21:19:00 1091
原创 娱乐,C语言模拟C++虚函数多态性。
看有感,原来C语言可以这样玩。。仔细想想,C++不也是在汇编层面上的封装么。膜拜这些语言设计者,深谙计算机科学的精髓,真是长见识了。本文只是简单模拟下多态,大体上就是C++的虚函数表机制,并没有考虑类域与继承机制,真要讨论起来那就麻烦多了,推荐大家可以看看PY源码解析,里面有简单介绍。我拿传统的圆与正方形问题为例子,基类是Shape,每个类定义虚函数showShape(),从而体现多态。
2009-12-05 00:25:00 3930 1
原创 NetShield防火墙可执行程序及源码
前身是LANShield,放在了天空软件城,刚发布时,还算比较受好评,但是由于我的不断改进,功能杂七杂八,体积臃肿,BUG不断。现在基本等于一个废物了,却还一直挂在各大网站。其间还不断有热心网友的回馈,这点还是很欣慰的。大部分朋友都说最初的LANShield1.0好用,界面简洁,特色突出。可是俺也一直没保存副本,网上搜索貌似也没了,这点很囧。。这个程序我是不准备更新的了,自己再看源码脑袋都疼,
2009-12-04 19:05:00 2129 3
原创 一个Http多线程下载与断点续传的DLL
由于做东西需要,所以写了这个小工具,喜欢的朋友就收下吧。此Dll就是导出一个下载函数,支持多线程与断点续传。纯socket实现,参考了很多代码。还是比较有学习价值。 没有经过严格测试,应该会有 BUG,里面有一个多线程操作downloaded+=nLen的代码段应该加锁的,但是考虑到downloaded只是用于统计下载速度,不影响整体核 心。所以没加锁。貌似也没啥错误。。经测试一般开
2009-12-04 18:54:00 2683 1
原创 发布NetWay网络编程引擎测试版。
呵呵,之所以称作引擎只是觉得这名字比较酷而已。断断续续写了好久了,由于自己是面向对象编程新手,所以只是做了一点浅浅的封装,将网络编程的数据传输模块与逻辑模块隔离,并提供接口供客户端使用。 下面先简单介绍下特点吧。 1,简化了网络编程,使客户只需定制自己的协议与逻辑就可实现各种网络软件。 2, 服务端用Java实现,客户端用C++与Socket实现(有几个线程操作用了W
2009-12-04 18:36:00 1589 1
原创 Win32下线程池实现
关于线程池的原理及java实现,我在http://shallway.net/?p=109 有写过。我现在只是讨论下Win32下的线程池,道理一个样。当然,除了自己实现线程池,更建议使用官方的线程池库,比如java的Executors,Windows下的ThreadPoll API(具体可查阅windows核心编程第11章),但是Windows下的线程池API只支持VISTA以上版本。
2009-12-04 18:34:00 1896
原创 蚂蚁过杆问题整理
貌似这问题比较火,陆陆续续看到不下于三次了,而且变种也比较多。。。直到昨天刷咱学校的UOJ,才反应过来真正的解题思路。可能火星了,但还是自己记录下吧:) 先转一下UOJ(UESTC ONLINE JUDGE)原题:偏僻的小路 Description 在电子科大清水河校区的某个偏僻角落里,有一条东西方向的小路,长L米(由西向东位置为0到L),小路上有N个人从t=0秒开始以相同的恒定速率V
2009-12-04 18:33:00 1518
Francis0.01
2010-04-06
libevent2.0.3 VS2005整合包
2010-03-19
LANShield防火墙源码
2009-02-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人