• 技术文章 >后端开发 >php教程

    WinSocket的几个WSA*_PHP教程

    2016-07-12 09:05:57原创440

    WinSocket的几个WSA*


    1. typedef struct WSAData {
    2. WORD wVersion;
    3. WORD wHighVersion;
    4. #ifdef _WIN64
    5. unsigned short iMaxSockets;
    6. unsigned short iMaxUdpDg;
    7. char FAR * lpVendorInfo;
    8. char szDescription[WSADESCRIPTION_LEN+1];
    9. char szSystemStatus[WSASYS_STATUS_LEN+1];
    10. #else
    11. char szDescription[WSADESCRIPTION_LEN+1];
    12. char szSystemStatus[WSASYS_STATUS_LEN+1];
    13. unsigned short iMaxSockets;
    14. unsigned short iMaxUdpDg;
    15. char FAR * lpVendorInfo;
    16. #endif
    17. } WSADATA;

    WSADATA结构被用来储存调用AfxSocketInit全局函数返回的Windows Sockets初始化信息。


    1、WSAStartup

    用法:

    WSADATA wsaD;
    WSAStartup(MAKEWORD(2,2),&wsaD);

    当一个应用程序调用WSAStartup函数时,操作系统根据请求的Socket版本来搜索相应的Socket库,然后绑定找到的Socket库到该应用程序中。以后应用程序就可以调用所请求的Socket库中的其它Socket函数了。

    事实上,如果windows socket程序不加上这句,调用socket()函数是调用不成功的,一直返回-1。


    2、WSACleanup

    WSAStartup应该与WSACleanup成对使用,WSAStartup的功能是初始化Winsock DLL,WSACleanup是来解除与Socket库的绑定并且释放Socket库所占用的系统资源。

    在Windows下,Socket是以DLL的形式实现的。在DLL内部维持着一个计数器,只有第一次调用WSAStartup才真正装载DLL,以后的 调用只是简单的增加计数器,而WSACleanup函数的功能则刚好相反,每调用一次使计数器减1,当计数器减到0时,DLL就从内存中被卸载!因此,你 调用了多少次WSAStartup,就应相应的调用多少次的WSACleanup.


    3、WSAGetLastError()

    是指该函数返回上次发生的网络错误。

    待续......



    参考网址:

    http://blog.csdn.net/bolike/article/details/7584727

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1067478.htmlTechArticleWinSocket的几个WSA* typedef struct WSAData { WORD wVersion; WORD wHighVersion; #ifdef _WIN64 unsigned short iMaxSockets; unsigned short iMaxUdpDg; char FAR * lpVendorInfo; char...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:android
    上一篇:openstack qcow2 镜像文件制作_PHP教程 下一篇:VirtualBox下CentOS-6.7上网故障排除_PHP教程
    PHP编程就业班

    相关文章推荐

    • PHP中的日期处理方法集锦_PHP教程• 在PHP中使用灵巧的体系结构_PHP教程• 抓取YAHOO股票报价的类_php技巧• Yii中创建自己的Widget实例_PHP• php短址转换实现方法_PHP

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网