计算机网络02——基于UDP协议的CS架构实战

服务端过程

加载库

加载库的函数为——WSAStartup(参数1,参数2);

此函数返回值是int类型,因此定义int型变量err接收函数返回值

int err=WSAStartup(version,&data);

WSAStartup函数使用时需要先引入头文件

#include<winsock2.h>

WSAStartup函数需要两个参数

第一个输入参数是WORD类型,表示需要加载的库的版本号,定义version宏表示版本号

第二个输出参数是结构体指针类型,定义data结构体,取地址变成指针传入

WORD version = MAKEWORD(2, 2);
WSADATA data = {};

将定义的两个参数传入后,需要判断加载库是否成功

如果没有成功,则需要退出程序

if (err != 0)
{
	cout << "WSAStartup fail!" << endl;
	return 1;
}

如果加载成功,需要判断版本号

判断版本号方法:取出高字节和低字节,都与版本号进行比较

加载库成功,且版本号正确,打印成功日志

if (2==HIBYTE(data.wVersion)&&2== LOBYTE(data.wVersion))
{
	cout << "WSAStartup successful" << endl;
}

如果加载库成功,但版本号错误,需要卸载库,同时结束程序

卸载库方法:WSACleanup

else
{
	cout << "WSAStartup version error";
	//卸载库
	WSACleanup();
	return 1;
}

创建套接字

 创建套接字函数——socket                函数返回值——SOCKET类型

 第一个参数为ip地址类型——ipv4——AF_INET

IP地址分类:

(1)IPv4

        这是早期广泛使用的版本,由32位组成,通常表示为四个点分十进制数(如192.168.0.1)。每个部分范围从0到255。由于IPv4地址空间有限,现在已经接近用尽。

(2)IPv6

        为了替代IPv4,设计了更大容量的地址系统,由128位组成,采用冒号十六进制表示(如2001:0db8:85a3:0000:0000:8a2e:0370:7334)。IPv6地址空间极大,几乎可以确保无限供应。

socket类型——用户数据报套接字——根据协议选择的

套接字类型

1. 流式套接字(Stream Socket):这种套接字提供的是顺序、无错误的数据传输,类似于文件流。它们适合于需要完整数据传输的应用场景,如HTTP请求响应、SMTP邮件等。

2. 数据报套接字(Datagram Socket):也称为无连接套接字,每个数据包都是独立发送的ÿ

  • 22
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值