2022-1-3号:启动网络库

2022-1-3号:启动网络库,第1张

2022-1-3号:启动网络

以前觉得网络很难,但是经过今天的学习,我觉得我又找回了自信

1,什么是网络编程? 从代码上来讲,就是调用相应的网络接口去编程就到达了网络编程的目的,至于这些接口是怎么实现的,暂时不用管

2,tcp/ip的特征是:可靠的,需要连接的,基于字节流的传输层协议。而udp/ip的特征是:不可靠的,不需要连接的,基于数据报的传输层协议。

3,C/S模型:就是类似qq,服务器只有一个,而客户端是多个的。B/S模型:类似浏览器,一个浏览器可以对多个服务器,每个服务器也可以连接多个不同的浏览器。

4,为什么需要启动网络库? 从结果上来看,如果不打开网络库的话,后续的 *** 作没法进行。

#include                 //这里包含这个头文件是把对应的函数声明弄进来
#pragma comment(lib,"Ws2_32.lib")    //这里的意思是说把对应函数的实现找到,当然找到的都是
                                     //人看不懂的二进制机器码。

int main()
{
	WORD Version = MAKEWORd(2, 1);   //创建版本号,相当于2.1
	WSADATA Data;                    //定义一个结构体变量,充当出参

	int ret=WSAStartup(Version, &Data);//返回值为一个int类型的变量
	if (ret == 10091)
		printf("用户环境问题,可以重启电脑试下!");
	else if (ret == 10092)
		printf("所使用的网络库不支持,更新一下!");
	else if (ret == 10067)
		printf("任务数量达到上线,受限于内存已不足或端口已用完!");
	else if (ret == 10036)
		printf("初始化发生了阻塞,就是卡住了!可以重启软件");
	else if (ret == 10014)
		printf("第二个参数不是有效参数,指针指向的不是有效地址,指到空了");
}

​

​

5,WSAStartup():w就是windous   S就是socket,A就是异步启动的意思。

6,异步和同步的理解:异步就是两件事情得一件一件来干,干一件得时候,另外一件必须是停下来得,也就是阻塞,同步就是两件事情一起干,比如一边听歌一边打游戏。

7,关于网络库版本,可以随便写,我的意思是写一些不存在得版本,如果主版本号存在,就去对应主版本得最高副版本,如果主版本不存在,就取电脑得支持的最新版本,例如输入得是1.7,但是1.7不存在,他会取1.x,如果输入得是3.5,那他会取2.2,我电脑支持得最新版本。但如果输入得是零点几,他会出现问题,返回值是10092。

8,主版本号在低位,符版本号在高位:

 可以看出,低位是主版本号1,高位是副版本号11,虽然输入得是1.11,但是在出参处得到的是1.1版本,257==0000 0001 0000 0001==1.1,

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5694223.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存