|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一般的指的.net就是跟java相对的那种,主要是做企业级应用的。你如果想学这个,主要就是学C#和数据库。(ASP.NET好像很重要的,应该也要学的,ASP.NET上好像可以结合VB和C#等多种语言,但是微软主推C#)参考|功能 这个内容在cnblogs中也会商过良多次了,这两天也许看了一些材料,看到一些复杂的功能目标拿出来和人人会商一下。
Socket+Threads/ThreadPool
也许功能:小于1500个毗连
完成:Accept一个Socket,就交给一个线程往办理,对照笨,但也对照无效,由于是同步体例,把持起来很便利。初级点的,就是交给一个线程池往办理,线程池由体系主动托管,省往了开支线程的工夫。一样平常小型项目,用这个完整充足,开辟也复杂。但要注重,假如多少Socket长工夫占用线程池中的线程,同时别的毗连数又对照多,很简单呈现提醒说你没有充足的线程供利用。呵呵,让Socket少做点事,少占用工夫,换一个快点的CPU是不错的体例。别的,假如有一些对照好的第三方线程池组件,也能够选择利用,好比SmartThreadPool。
Socket+Select
也许功能:年夜于1500个毗连后功能下落
完成:Select是很经常使用的一种模子。是在堵塞功效中轮询一个或多个Socket,将要处置的Socket放到一个IList中,当Select轮询停止后,然后我们再本人处置这个IList中的Socket。详细的用法能够看一下MSDN。Select的效力其实不能说是高的,由于当行列中待处置的Socket对照多的时分,处置最初几个Socket相称于要遍历一切后面的Socket,十分不划算的。
Socket+Asynchronous
也许功能:约7500个客户端毗连
完成:BeginXXXX,EndXXXX,再熟习不外了吧。异步Socket回根究竟,仍是用的线程池手艺,用线程池来处置异步IO。这就又引出个成绩,.NET的线程池又是用的甚么完成体例,之前看过有人说,.NET的线程池是用的完成端口来完成的,我不晓得如许的说法是否是准确,从查到的材料中也没有举措确认(但愿这点有伴侣能够告知我)。异步Socket关于程序的处置流程来讲比同步庞大了很多,异步回调函数的把持不好像步体例那样直不雅。但有一点我想应当是要注重的,就是回调函数应当轻装上阵,不该该处置过量的事件,对传送数据的处置,应当交给别的线程举行处置。
IOCP(完成端口)
也许功能:约20000~50000个客户端毗连
完成:如今.NET下有一些伪IOCP,人人能够往搜刮一下,还没有见过开放出来的用这些伪IOCP来完成的SOCKET例子。我说的20000~50000个客户端毗连,是指在C++下开辟的情形,如许的情形下,必要用到的基础手艺还包含内存池、查询算法等。
伪IOCP能完成几最年夜毗连,没有材料能够查,假如有伴侣晓得,能够会商一下。别的下面提到的很多数据,是从一些材料上摘抄上去的,我没有本人试过,仅仅是拿出来和人人会商一下。我想,一个高功能的服务端程序,大概必要的手艺不单单是接纳甚么模子,另有很多细节必要注重,好比内存的处置,接纳甚么算法等等,固然,这仅仅是软件本钱上的,硬件上一定也是必要投进的。
c语言的编译器,几乎是所有新平台都有的。因此从这点上看,c语言的程序,比其他任何语言更加容易跨平台。 |
|