WSAEnumProtocols的用法
来源:互联网 发布:三菱plc编程电缆 编辑:程序博客网 时间:2024/06/05 04:52
- #include <Winsock2.h>
- #include <stdio.h>
- #pragma comment(lib, "ws2_32.lib")
- void main(void)
- {
- WSADATA wsaData;
- WSAStartup( MAKEWORD( 2, 2 ), &wsaData );
- LPWSAPROTOCOL_INFO info = NULL;
- DWORD dwLen;
- //因为info还未分配内存,第一次调用必定会失败,但能够得到dwLen的值
- if (SOCKET_ERROR == WSAEnumProtocols(NULL, info, &dwLen))
- {
- int iErrorCode = GetLastError();
- if (WSAENOBUFS != iErrorCode)
- {
- WSACleanup();
- return;
- }
- }
- if (dwLen > 0)
- {
- //如果没有分配内存这一步,将会出错,只传递 &inof是没有用的,注意指针的用法
- info = (LPWSAPROTOCOL_INFO)GlobalAlloc(GPTR, dwLen);
- if (info == NULL)
- {
- printf("Allocate memory failed! ErrorCode is %d", GetLastError());
- WSACleanup();
- return;
- }
- //第二次调用
- int iProtocolCounts = WSAEnumProtocols(NULL, info, &dwLen);
- if (SOCKET_ERROR == iProtocolCounts)
- {
- printf("WSCEnumProtocols Error: %d", GetLastError());
- GlobalFree(info);
- WSACleanup();
- return;
- }
- //打印本机安装的协议信息
- for (int i=0; i<iProtocolCounts; i++)
- {
- printf("\ni=%d\nProtocolDescription:%s\n", i, info[i].szProtocol);
- }
- GlobalFree(info);
- }
- WSACleanup();
- }
0 0
- WSAEnumProtocols函数的用法
- WSAEnumProtocols的用法
- Winsock编程-WSAEnumProtocols()
- WSAEnumProtocols.exe已停止工作
- ?的用法
- ?的用法
- ---" ~ " 的用法---
- ---" ~ " 的用法---
- ~ 的用法
- 的用法
- ##的用法
- ##的用法
- 的用法
- ${ }的用法
- ##的用法
- ${ }的用法
- "->"的用法
- ${ }的用法
- std::string用法总结
- 钓赌塘经验交流
- 基于OpenDaylight的二次开发一步一个脚印(二)编译源代码
- C++设计模式之工厂方法模式
- 在N9使用TabGround进行页面导航(01)
- WSAEnumProtocols的用法
- qsort函数的用法
- halcon对tuple处理的算子与hdevelop的对应关系
- 第七周上机项目 圆柱体表面积
- 读取数据库的内容用easyui数据表格输出角色列表
- Dataguard搭建灾备库操作
- 【BestCoder】HDOJ 5062 Beautiful Palindrome Number
- easyui动态添加选项卡
- java删除目录下的文件失败