【基本tcp/ip模型】c.s模型(1)

举报
人才程序员 发表于 2023/10/29 20:37:28 2023/10/29
【摘要】 @TOC 前言网络编程是基于tcp/ip协议来完成的网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用。 网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。提示:以下是本篇文章正文内容,下面案例可供参考 一、c.s模型和tcp/ip协议是什么?重要性:TCP/IP是今天的互联网的基石...

@TOC


前言

网络编程是基于tcp/ip协议来完成的

网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用。 网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。


提示:以下是本篇文章正文内容,下面案例可供参考

一、c.s模型和tcp/ip协议是什么?

重要性:TCP/IP是今天的互联网的基石,没有这个就上不了网了
概念:tcp/ip指的是整个网络传输体系。而tcp协议和ip协议就是单单的两个协议
特点:面向连接的,可靠的,基于字节流的传输层协议

client/server ----- 客户端/服务器模型

这些我们下载客户端的,都属于c/s模型的一个应用
c/s模型其实是概念层面的,实现层面可以是基于任何的网络协议。

演示:

套接字编程与socket编程

socket中文->套接字,也统称叫网络编程

二、网络头文件 网络库

最底层的网络函数,大家用QT MFC wpf,或者百度下载的很多其他的封装好的网络库,都是对咱们讲的这些最本质的网络函数的二次封装,咱们讲的是通用的,讲完这个大家也可以自己封装函数库给别人用了。

#include <WinSock2.h>
#pragma comment(lib,"ws2_32.lib")

WinSock2网络库版本(winsock.h)
目前网络库版本:1.0 1.1 2.0 2.1 2.2
大家可以挑选自己电脑可以用的网络库使用

导入库
ws2_32.lib(第二版本)
wsock32.lib(第一版本)
大家可以挑选自己电脑可以用的网络库使用

三、打开网络库 WSAStartup

功能:打开网络库/启动网络库,启动了这个库,这个库里的函数/功能才能使用
w windows
s socket
a Asynchronous 异步
startup 启动
同步和异步概念:
同步:你执行完后我才能执行
异步:可以一起执行,不影响使用

//函数原型
//参数1:我们要使用的库的版本
//参数2:系统通过这个参数给我们一些配置信息
int WSAStartup(
  WORD      wVersionRequired,
  LPWSADATA lpWSAData
);

代码:

WORD wVersionRequired = MAKEWORD(2,2);//使用宏“MAKEWORD”赋值进WORD中
WSADATA WSAData;//参数二其实是WSADATA的指针
WSAStartup(wVersionRequired,&WSAData);

MAKEWORD
MAKEWORD(主版本,副版本);
使用自己电脑可以使用的版本

WSADATA
结构体成员:
wVersion我们要使用的版本
wHighVersion系统能提供给我们最高的版本
iMaxSockets返回可用的socket的数量,2版本之后就没用了
iMaxUdpDgUDP数据报信息的大小,2版本之后就没用了
lpVendorInfo供应商特定的信息,2版本之后就没用了
szDescription szSystemStatus当前库的描述信息,2.0是第二版的意思

返回值
返回0为执行正确
错误:
在这里插入图片描述
相应的去if…else 或switch

四、版本校验

//根据上可以指定WSADATA的成员得知版本号存储位置
if(2 != HIBYTE(WSAData.wVersion) || 2 != LOBYTE(WSAData.wVersion))
{
	printf("版本号错误!!!");
	WSACleanup();//关闭库
	return -1;
}

宏解释:
HIBYTE是副版本
LOBYTE是主版本
根据自己添加的WORD的本版是校验

WSACleanup();//关闭库

总结

以上就是今天要讲的内容,本文仅仅简单介绍了打开网络库头文件,打开网络库,版本校验.请大家好好理解

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。