Network
文章平均质量分 77
shallwake
I am nobody.
展开
-
TCP连接关闭总结
由于涉及面太广,只作简单整理,有兴趣的可参考《UNIX Networking Programming》volum 1, Section 5.7, 5.12, 5.14, 5.15, 6.6 以及7.5 SO_LINGER选项。以一个简单的echo服务器为例,客户端从标准输入读入字符,发送给服务器,服务器收到后再原样返回,客户端收到后打印到标准输出。那么,关于套接字的关闭有以下几种情形:原创 2010-01-24 11:23:00 · 11383 阅读 · 2 评论 -
Libevent2.0.3(新版)VS2005整合版下载
Libevent2.0系列有很大的改进,具体可见项目包里的what’s new.txt,然后今天逛官方主页,发现3月1号更新了一个比较官方的manual,http://www.wangafu.net/~nickm/libevent-book/,感觉很有帮助:) 我觉得2.0最大的改进就是支持IOCP与多线程了吧,很强大,evbuffer也改进效率了,改成复杂的链表机制了,类似复杂的内存管理算法。原创 2010-03-19 16:14:00 · 172 阅读 · 0 评论 -
C/S模型安全登录解决方案
身为信息安全专业的,还是写点与专业相关的博文吧。。嗯。 一般在C/S软件中,登录流程都设计的很复杂,比如QQ。一方面为了防止伪造客户端,而另一方面更重要的则是对信息加密,防止明文被截取。 下面介绍一种比较好的解决方案。 首先,加密算法首当其中选RSA了(因为每门专业课都要考它。。),先简单介绍下RSA原理: RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数( 大于 100个十进制位)原创 2009-12-22 22:37:00 · 2966 阅读 · 0 评论 -
多线程非阻塞服务器设计
接着上篇日志写。。一般在设计服务器时,都是非阻塞的,且为了简单,通常都设计为一个线程来操作。 但是这样设计的缺点也很明显,倘若服务器有很多连接,那么每次循环都会处理很多套接字,除了CPU使用率不高外,如果某个套接字的数据传输速度很慢,那么他的调用也会很慢(个人猜测,因为TCP传输速度是双向均衡的),从而势必会影响其他套接字的数据传输。 所以非阻塞+多线程是大型服务器必备的解决方案。 多线程操原创 2009-12-17 20:00:00 · 4067 阅读 · 1 评论 -
转,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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
一个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 评论 -
理解套接字recv(),send()
记得以前发过一篇类似的博文(原博客被和谐了,连接找不到了)。新手最容易混淆的就是这2个函数了,今天看UNP时,找到了个很不错的图示,觉得理解清楚后就基本没什么问题了,在这里做个简单整理,注意此图示是假设从stdin接受输入,然后send给套接字发送;从套接字recv后,传给stdout输出。send: tooptr:指向下一个将传送给socket的字节toiptr原创 2010-01-30 23:28:00 · 2975 阅读 · 0 评论 -
再谈select, iocp, epoll,kqueue及各种I/O复用机制
上篇文章太过幼稚,一派胡言,希望没有误导大家。。我也是菜鸟,学习本身就是一个不断追求真理的过程,希望能谅解:)首先感谢kasicass GG指出错误(已经指导我很多次了,非常感谢~~),然后我又查阅了一些资料,再次整理,more seriously and detailedly~ 首先,介绍几种常见的I/O模型及其区别,如下: blocking I/O n原创 2010-01-28 14:33:00 · 55247 阅读 · 32 评论 -
扩展C++STL制作Socket Stream
主页备案2个月了,还没成功,继续在这发点水言。 以前就有此想法,想想C++的iostream,那是多么滴方便,我感觉是比java I/O库还好用。内置缓冲机制,安全性与方便性都很优秀,那么可不可以扩展它做一个SocketStream出来,从而告别臃肿复杂的Berkly套接字呢? 我没实践过,但是答案是肯定滴,而且强人早已实现,我在此提供两个资料,其余后文都是废话,迫切找资料者可以略过。 So原创 2010-01-11 20:57:00 · 3676 阅读 · 0 评论