套接字socket的作用_UDP编程-套接字(socket)

#千锋逆战班,计算机网络#

********************************命运从不偏袒任何人**********************************

却会垂怜认真生活的人,对未来的真正慷慨,是把一切献给现在,总有一天,你会惊艳时光

****************************即无人能替,又光芒万丈******************************

今天是在千锋逆战班学习计算机网络的第二天,学习了字节序的转换、点分十进制字符串和网络大端数据的转换、udp的简单编程,下面分享一下今天的学习

1、字节序

一般我们个人的电脑默认都是小端存储的,一些大的服务器和网络上的数据都是大端存储的,如果我们要发送数据到网络上就需要考虑到大小端的转换,转换我们需要用到的函数有如下几种:

(1) htonl函数

uint32_t htonl(uint32_t hostint32);

功能:

将32位主机字节序数据转换成网络字节序数据

参数:

hostint32:待转换的32位主机字节序数据

返回值:

成功:返回网络字节序的值

头文件:

#include <arpa/inet.h>

(2) htons函数

uint16_t htons(uint16_t hostint16);

功能:

将16位主机字节序数据转换成网络字节序数据

参数:

uint16_t:unsigned short int

hostint16:待转换的16位主机字节序数据

返回值:

成功:返回网络字节序的值

头文件:

#include <arpa/inet.h>

(3)ntohl函数

uint32_t ntohl(uint32_t netint32);

功能:

将32位网络字节序数据转换成主机字节序数据

参数:

uint32_t: unsigned int

netint32:待转换的32位网络字节序数据

返回值:

成功:返回主机字节序的值

头文件:

#include <arpa/inet.h>

(4) ntohs函数

uint16_t ntohs(uint16_t netint16);

功能:

将16位网络字节序数据转换成主机字节序数据

参数:

uint16_t: unsigned short int

netint16:待转换的16位网络字节序数据

返回值:

成功:返回主机字节序的值

头文件:

#include <arpa/inet.h>

2、点分十进制字符串和网络大端数据的转换

转换函数有:

(1)#include <arpa/inet.h>

int inet_pton(int af, const char *src, void *dst);

功能:

将一个点分十进串转为32位的大端数据

参数:

af: 协议 AF_INET (ipv4)

src: 待转的点分十进制串

dst: 保存32位大端数据的地址

返回值:

成功返回1 0 和-1 都是失败

(2)#include <arpa/inet.h>

const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);

函数功能:

将网络4字节的大端数据转为点分十进制串

参数:

af: 协议 AF_INET (ipv4)

src: 待转的32位大端数据

dst:保存点分十进制串的地址

size:dst指向那块空间的大小

成功:则返回字符串的首地址

失败:返回NULL

3、udp的简单编程

udp编程,我们需要用到套接字socket,socket的作用是提供不同主机上的进程之间的通信

下面提供一个简单案例

b4ccc74191fa5eef382dee598c95e670.png

6645f182cf01958d66ed3e64d4f4e2da.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值