![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
qq_42343682
这个作者很懒,什么都没留下…
展开
-
网络编程:用UDP通信实现组播通信(多播)
用UDP通信实现组播通信(多播)组播通信特点:发送端创建的聊天组,你想加入就加入,不想加入就不接收(想加入才把数据发给组播地址)Ip地址分类A, B, C, D(组播地址)——224.0.0.0 — 239.255.255.255原理图:流程:组播发送端1, 创建UDP套接字socket(AF_INET, SOCK_DGRAM, 0)2, 发送数据给组播地址sendto(sockfd, 发送的数据data, 数据长度size, 0, 组播地址, 地址长度)组播接收端1, 创建UDP原创 2021-03-31 23:32:21 · 4882 阅读 · 0 评论 -
网络编程:用UDP通信实现广播(一对多)的流程
用UDP通信实现广播接收数据:原理图:广播流程(bcast.c, bcastrecv .c)创建UDP套接字 socket(AF_INET, SOCK_DGRAM, 0)开启广播 int on=1; setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, on, sizeof(on));发送数据给广播地址 sendto(sockfd, 发送的数据data, 数据长度size, 0, 广播地址, 地址长度)函数://开启广播int se原创 2021-03-31 23:16:35 · 5079 阅读 · 1 评论 -
网络编程:udp通信流程代码实现客户端和服务器的连接
udp通信流程代码实现客户端和服务器的连接原理流程:函数使用://接收数据ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);参数: int sockfd 套接字描述符 void *buf 存储接收的数据 size_t len 存储数据的空间大小 int fl原创 2021-03-31 22:36:06 · 408 阅读 · 0 评论 -
网络编程:epoll多路复用实现多客户端的监听accept和write函数的阻塞解除
epoll多路复用实现多客户端:流程:1、创建epoll2、添加要监听的事件3、监听(阻塞)4、判断原理图int epoll_create(int size);参数:监听事件个数(linux2.6.8可以忽略, 所以只需要填写一个大于0的数)_int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);中文参数:int epoll_ctl(文件描述符, 事件状态, 要监听的文件描述符, 结构体)事件状态:原创 2021-03-31 19:17:57 · 720 阅读 · 0 评论 -
网络编程:select多路复用监听accept和write函数解除阻塞
select多路复用的使用原理图:创建流程:1、创建套接字2、绑定3、监听函数int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);中文解释int select(最大文件描述符+1, 读文件描述集合, 写文件描述符集合, 异常文件描述符集合, 设置等待时间,NULL表示一直等待直到有响应)操作文件描述符集合的函数void FD_原创 2021-03-31 17:20:14 · 1088 阅读 · 0 评论 -
网络编程:多线程+json解析实现多客户端、服务器;客户端代码实现远程控制GEC6818开发板的灯
客户端代码实现远程控制GEC6818开发板的灯原理图:完整代码如下://LED服务器端#include <stdio.h>#include <sys/socket.h>#include <sys/types.h>#include <string.h>#include <netinet/in.h>#include <unistd.h>#include <pthread.h>#include <se原创 2021-03-31 15:38:35 · 645 阅读 · 0 评论 -
网络套接字编程:创建客户端和服务器端的流程及完整代码
TCP通信创建客户端和服务器端的流程网络套接字编程套接字 socket , 也可以做进程间通信(ROS)TCP协议通信 (传输层协议)安全可靠传输协议, 需要先建立链接才进行收发数据优点 : 安全,协议层会校验, 缺点:实时性差, 粘包问题(数据流)应用场景: 传输对数据安全高的数据, 文件, 控制指令流程> 服务器端1.创建套接字#include <sys/types.h> /* See NOTES */#include <sys/s原创 2021-03-30 09:04:34 · 2872 阅读 · 0 评论 -
网络编程:用tcp实现文件传输
用tcp实现文件传输文件发送端(tcp客户端)1.网络链接2.发送文件信息(文件名称, 文件大小)3.发送文件内容(分段发送)文件接收端 (tcp服务器)1.网络初始化监听2.接收文件信息(创建一个空文件准备接收数据)3.接收文件内容(分段接收,计算接收得长度==文件大小)完整代码:发文件/*1. 文件发送端(tcp客户端)1.网络链接2.发送文件信息(文件名称, 文件大小)3.发送文件内容(分段发送)*/#include <stdio.h>#i原创 2021-03-30 09:20:28 · 6879 阅读 · 4 评论 -
网络编程:TCP多线程实现多客户端服务器
TCP多客户端服务器->远程控制(此篇用多线程实现!)原理图:完整代码如下:#include <stdio.h>#include <sys/socket.h>#include <sys/types.h>#include <string.h>#include <netinet/in.h>#include <unistd.h>#include <pthread.h>#include <semap原创 2021-03-30 13:12:43 · 600 阅读 · 0 评论 -
网络编程:CJSON库来实现json数据的打包和解析
网络数据格式(JSON)通用的数据格式对象{}, 数组[], 键值对key:value对象:{ to:88888, id:99999,data:hello } 对象中数据是键值对象数组:[1, 2, 3 , 4,5 ,6], [“hello”,”world”], [{}, {},{}] 数组中存储的是同类型数据解析流程如下:通过上诉流程实现json数据打包的代码如下:#include "cJSON.h"#include <stdio.h>int main(void){原创 2021-03-30 20:01:39 · 379 阅读 · 0 评论 -
网络编程:json多客户端服务器实现
json多客户端服务器实现原理图:服务器代码:#include <stdio.h>#include <sys/socket.h>#include <sys/types.h>#include <string.h>#include <netinet/in.h>#include <unistd.h>#include <pthread.h>#include <semaphore.h>#includ原创 2021-03-30 20:44:26 · 146 阅读 · 0 评论