| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> UDP编程 -> 正文阅读 |
|
[网络协议]UDP编程 |
目录 UDP介绍UDP(用户数据报传输)是无连接,不可靠传输。 server端? ? ? ? 1.创建套接字? ? ? ? ? ? ? ??int socket(int domain, int type, int protocol); ????????2.绑定IP地址和端口号????????????????该函数在填写addr参数时,要注意,我们先填写struct sockaddr_in这个结构体,再传递参数时,要将sockaddr_in类型的指针强转成sockaddr类型的指针。 ? ? ? ? 注意:网络字节序和本地字节序的切换。 端口: ????????uint32_t htonl(uint32_t hostlong); ? ? ? ?uint16_t htons(uint16_t hostshort); ? ? ? ?uint32_t ntohl(uint32_t netlong); ? ? ? ?uint16_t ntohs(uint16_t netshort); ip地址: ????????in_addr_t inet_addr(const char *cp); ????????int inet_pton(int af, const char *src, void *dst); ????????const char *inet_ntop(int af, const void *src,char *dst, socklen_t size); ? ? ? ? 3.数据通信? ? ??????????????????ssize_t recv(int sockfd, void *buf, size_t len, int flags); ????????????????ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, ????????????????????????????????????????????????struct sockaddr *src_addr, socklen_t *addrlen); ? ? ? ? ? ? ? ? 数据接收函数,recv常用语TCP,recvfrom常用于UDP,tcp建立连接后,二者无区别。二者可以互换使用,但是在UDP中,recvfrom函数可以很容易知道是谁在发送数据,回复起来很方便。如果UDP中使用recv函数,回复时不知道到具体回复给谁。 client端? ? ? ? 1.创建套接字? ? ? ? ? ? ? ? 同server端 ????????2.数据通信????????????????ssize_t send(int sockfd, const void *buf, size_t len, int flags); ? ? ? ? ? ? ?? ?ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, ? ? ? ? ? ? ? ? 数据发送函数,send常用于TCP,sendto是常用于UDP,sendto为非阻塞函数。 ? ? ? ? ? ? ? ? dest_addr:是目的端的地址和端口号。 ? ? ? ? ? ? ? ? addrlen:是sockaddr结构体的大小。 server端代码
client端代码
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 17:38:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |