Posted on April 2, 2009 by
Rock .
首先庆祝下Rock博客(ray77.com)的Google PR今天荣升到2了,对于Google的工程师们PR似乎只是个小游戏,但还是挺值得高兴的。以后Rock只发布原创的东西了,即使要转载也只转载一些相当有意义的文章,充数的杂闻就可以PASS了
。In my opinion , It is simply a weblog , a personal blog …
再唠叨下工作的事情。摩力游(moliyo)的人力资源部与程序部的高管似乎比较认可我的资质与技术水平,但学校还有些麻烦的事情需要请假处理这让他们比较难接受,不管怎么样,Rock一直在尽量协商,但愿不会影响到复试。对摩力游的中级客户端工程师还是相当憧憬的。
嗯,接下来进入主题了,谈下C++中如何利用socket发送结构体,此教程只供网络编程菜鸟参考,高手可以绕路了。
Read more…
Posted on January 2, 2009 by
Rock .
通常要开发网络应用程序并不是一件轻松的事情,不过,实际上只要掌握几个关键的原则也就可以了——创建和连接一个套接字,尝试进行连接,然后收发数据。真正难的是要写出一个可以接纳少则一个,多则数千个连接的网络应用程序。本文将讨论如何通过Winsock2在Windows NT 和 Windows 2000上开发高扩展能力的Winsock应用程序。文章主要的焦点在客户机/服务器模型的服务器这一方,当然,其中的许多要点对模型的双方都适用。
API与响应规模
通过Win32的重叠I/O机制,应用程序可以提请一项I/O操作,重叠的操作请求在后台完成,而同一时间提请操作的线程去做其他的事情。等重叠操作完成后线程收到有关的通知。这种机制对那些耗时的操作而言特别有用。不过,像Windows 3.1上的WSAAsyncSelect()及Unix下的select()那样的函数虽然易于使用,但是它们不能满足响应规模的需要。而完成端口机制是针对操作系统内部进行了优化,在Windows NT 和 Windows 2000上,使用了完成端口的重叠I/O机制才能够真正扩大系统的响应规模。
完成端口
一个完成端口其实就是一个通知队列,由操作系统把已经完成的重叠I/O请求的通知放入其中。当某项I/O操作一旦完成,某个可以对该操作结果进行处理的工作者线程就会收到一则通知。而套接字在被创建后,可以在任何时候与某个完成端口进行关联。 Read more…