套接字学习1
来源:互联网 发布:阿里云设置mx记录 编辑:程序博客网 时间:2024/05/21 06:11
/*每天总结一个套接字函数 */
第一天总结WSAStartup()函数
int WSAStartup(WORD wVersionRequeted,LPWSADATA wData);
首先WSAStartup的功能:加载socket库!一旦加载成功,系统就自动将socket库加载到应用程序中,然后,在编程中就可以自由的调用socket函数了。至于在windows下为什么要这样用,可能是动态链接的原因吧(我是初学者,解释不清楚,求大牛给个答复?)
1. 对于WSAStartup()的第一WORD型的参数可以这样理解:
WORD 分两个字节 高字节存储次版本号,低字节存储主版本号同时我们在给wVersionRequested变量赋值的时候要用到另外一个函数
WORD MAKEWORD( BYTE bLow; //指定变量的低字节 BYTE bHigh; //指定变量的高字节)
/*那么高字节很明显是对应次版本,低字节对应的主版本*/
2.对于WSAStartup()的另外一个参数我们可以理解为一个结构体的指针。what??结构体,没错!
struct WSAData { WORD wVersion; WORD wHighVersion; char szDescription[WSADESCRIPTION_LEN+1]; char szSystemStatus[WSASYSSTATUS_LEN+1]; unsigned short iMaxSockets; unsigned short iMaxUdpDg; char *lpVendorInfo;};
/*WSADATA结构被用来保存函数WSAStartup返回的Windows Sockets初始化信息。*/
通常情况下 wVersion保存的信息和wHighWersion是一样的都是主版本号,后面几个貌似暂时没有用上,具体是什么意思暂时还不是很理解。
这个两个参数都知道了,现在到了动手做的时候了,调用WSAStartup()函数具体操作:
#include < iostream >#include < cstdio >#include <winsock2.h>using namespace std;#pragma comment(lib , "ws2_32.lib")int main (){int root;WORD wVersion;WSADATA wData;wVersion=MAKEWORD(2,0);root=WSAStartup(wVersion,&wData);if(root!=0){puts("创建失败");return 0;}if(LOBYTE(wData.wVersion)!=2 || HIBYTE(wData.wVersion)!=0){WSACleanup();puts("版本号错误");return 0;}WSACleanup();return 0;}
- 套接字学习1
- 学习--原始套接字
- 套接字学习2
- 套接字学习3
- 套接字学习4
- windows套接字学习
- 原始套接字学习
- 套接字学习笔记
- 套接字学习
- 套接字学习教程之一
- 套接字学习教程之一
- 套接字 学习笔记二
- UC_SOCKET套接字学习小结
- socket 套接字学习笔记
- Winsock学习 --- 建立套接字
- 原始套接字学习总结
- C#套接字学习总结
- Java Socket套接字应用实例-java学习笔记(1)
- 查看修改Linux时区和时间
- Windows phone 7 里silverlight的点与像素 (Points and Pixels in silverlight)
- VB.NET必知必会(ADO.NET篇)
- 批处理学习之实现复制和剪切文件夹
- Linux多线程──读者写者问题
- 套接字学习1
- uva_11258 - String Partition( 区间DP )
- 职场人生(十三):思维定式,需要过往矫正
- 浏览器缓存详解:expires,cache-control,last-modified,etag详细说明
- ubuntu 下编译环境的配置(java, c++)
- linux下永久性修改ip地址
- Win8下IE10安装Flex调试flashpalyer控件失败的解决办法
- 程序员的学习和积累
- 杭电 ACM 1012