0
点赞
收藏
分享

微信扫一扫

Windows系统设置暂停更新,暂停时间可达3000天,“永久”暂停更新,亲测有效

米小格儿 2024-07-25 阅读 28

文章目录


img

Linux网络编程之UDP

1、端口号


2、端口号和进程ID的区别


3、重新认识网络通讯过程


4、UDP协议的简单认识


5、网络字节序

为使网络程序具有可移植性,使同样的C代码在大端和小端计算机上编译后都能正常运行,可以调用以下库函数做网络字节序和主机字节序的转换:

#include <arpa/inet.h>

uint32_t htonl(uint32_t hostlong);

uint16_t htons(uint16_t hostshort);

uint32_t ntohl(uint32_t netlong);

uint16_t ntohs(uint16_t netshort);

助记:h表示host,n表示network,l表示32位长整数,s表示16位短整数。


6、socket编程接口

6.1、socket常见接口


6.2、sockaddr通用地址结构

sockaddr通用地址结构:

/* Structure describing a generic socket address.  */
struct sockaddr
 {
   __SOCKADDR_COMMON (sa_);	/* Common data: address family and length.  */
   char sa_data[14];		/* Address data.  */
 };

sockaddr_in结构:

/* Structure describing an Internet socket address.  */
struct sockaddr_in
 {
   __SOCKADDR_COMMON (sin_); // 地址类型
   in_port_t sin_port;			/* Port number.  */
   struct in_addr sin_addr;		/* Internet address.  */

   /* Pad to size of `struct sockaddr'.  */
   unsigned char sin_zero[sizeof (struct sockaddr) // 8字节填充
			   - __SOCKADDR_COMMON_SIZE
			   - sizeof (in_port_t)
			   - sizeof (struct in_addr)];
 };

in_addr结构:

/* Internet address.  */
typedef uint32_t in_addr_t;
struct in_addr
 {
   in_addr_t s_addr;
 };

7、简单的UDP网络程序

7.1、服务器响应程序


7.2、服务器执行命令行


7.3、服务器英语单词字典


7.4、服务器聊天室


8、补充内容


OKOK,Linux网络编程之UDP就到这里,如果你对Linux和C++也感兴趣的话,可以看看我的主页哦。下面是我的github主页,里面记录了我的学习代码和leetcode的一些题的题解,有兴趣的可以看看。

Xpccccc的github主页

举报

相关推荐

0 条评论