在这里,我向大家介绍关于一套C++ Socket类,让你可以轻松的在Windows程序中使用Sockets。另外,我要感谢Fabien Le Lez、www.infflux.com、和Tamas Kaskoto等一切完善这套源码的朋友。
这里实际有四个类组成:
1、Socket(基类)
2、SocketServer(派生类)
3、SocketClient(派生类)
4、SocketSelect(友元)
这里的SocketSelect 可以用来在多个Socket上进行Select调用,在Sockets构造函数中,他是protected权限。
当你编译这些文件的时候,请保证链接Ws2_32.lib库。
回到头文件、执行文件、测试程序和Echo服务器,这里同样也有一个Proxy服务器和一个WEB服务器。
关于这个socket类简短的描述:每个Windows Socket程序会调用WSAStartup,这个调用在这里封装在Socket::Start里面,而这里又是由于调用Soket的构造函数。我通过在这里的V2.0版,我希望该版本进行安装。
这里的Socket构造函数将调用socket()来创建套接字(请注意小写)。它传递SOCK_STREAM参数显示TCP,如果你希望是UDP,刚你必须传递SOCK_DGRAM参数。
SocketClient:SocketClient继承于Socket,它的构造函数需要一个主机名作为参数,这个主机名是服务器的客户端希望传递的。这个主机名由gethostname()解析为一个IP地址。
SocketServer:SocketServer也是继承于Socket,它的构造函数第一个参数标示侦听的端口;第二个参数标示有能力处理的最大连接数;
下面是原作者的源代码:
1、头文件声明
2、CPP文件
<由于本人英文及编程水平有限,翻译难免有不足之处,欢迎请广大友友谅解并纠正!>
原文出自:http://www.adp-gmbh.ch/win/misc/sockets.html