- 博客(16)
- 收藏
- 关注
原创 Linux下UDP应用编程(单播、广播、组播)
发送方:创建socket套接字,bind绑定INADDR_ANY和端口号(如果不接收多播消息可以不bind),创建struct ip_mreqn,指定多播组IP和本地IP(可选INADDR_ANY),setsockopt将主机添加到多播组,创建sockaddr指定多播组IP和发送端口号,发送多播消息。发送端:创建socket套接字,setsockopt设置改套接字为SO_BROADCAST,bind绑定接收端口(如果不需要接收消息,可以不绑定),创建sockaddr携带广播端口号,发送广播消息。
2024-09-03 17:29:13 435
原创 Linux并发网络编程(epoll多路复用)
先启动./server,然后打开另一个终端运行./start.sh 50,50表示启动客户端数量,与server.c中MAX_CLIENTS一致。根据贴图可以发现,客户端发送并没有按1-50的顺序发送,这个跟Linux系统的调度策略有关,应该不难理解。客户端批量启动脚本start.sh,同时启动50个客户端与服务端通信。每个客户端发送20条数据,然后关闭连接。客户端:client.c。服务端:server.c。
2024-08-30 15:19:45 292
原创 Linux进程间通信-本地socket(AF_UNIX/AF_LOCAL)
socket协议簇提供了一种供本地机器进程间通信的协议:AF_UNIX/AF_LOCAL。通信双方不需要绑定IP和端口,可以指定一个存在于文件系统中路径实现进程间通信。下面上代码,服务端 unix_server.c。客户端 unix_client.c。
2024-08-19 18:21:35 495
原创 Linux进程/线程通信-信号量(POSIX Semaphore)+共享内存
信号量是Linux系统为应用层提供的进程/线程间同步的一种机制。信号量分两种:无名信号量(unnamed semaphore)和有名信号量(named semaphore)。
2024-08-16 11:22:43 617
原创 TCP三次握手-抓包分析
三次握手流程TCP报文格式图片转自网络,侵删第一次握手:客户端向服务端请求tcp连接时,首先向服务端发送一个空包,空包里面的flag标志把SYN置1;第二次握手:服务端收到SYN握手包,同样给客户端回了一个空包,包里面把ACK和SYN置1;第三次握手:客户端收到服务端的ACK包,也返回一个ACK包给服务端,至此,三次握手结束。测试工具Windows端:Wireshark,第三方TCP测试工具ubuntu虚拟机把wireshark的捕获打开,过滤条件设置为unbuntu或window
2020-06-15 10:57:21 55
原创 Linux进程间通信之消息队列
Linux提供了两种消息队列机制,POSIX Messages以及System V Message Queues。POSIX Messages打开或创建消息队列:mqd_t mq_open(const char *name, int oflag, mode_t mode, struct mq_attr *attr)参数名说明name消息队列名,任意取。必须从跟目录开始,且只能包含一个‘/’ ,例如:/example;错误:/example/anythingoflag消息队
2020-06-13 00:49:42 284 1
原创 Linux进程间通信之FIFO(命名管道)
创建FIFOFIFO为半双工通信,具有读写端,只能单向传输。一旦创建,读写端就无法更改。管道创建:int mkfifo(const char *pathname, mode_t mode);参数: pathname 全局路径,对所有进程可见(这也是非血缘关系进程间通信的基础);mode 文件权限;返回值:0 成功;-1 失败创建管道的实质就是在内核开辟一个buffer,并且在读端和写端都同时打开的情况下,两端才能通过buffer进行数据交互。由写端往buffer写入数据,读端从buffe
2020-06-11 14:17:08 163 1
原创 C语言基础字符串操作之删除重复字符
void remove_repeat(char *src, char *dest){ char buff[256]; //为什么是256:因为只要是字符串,ASCII值都在0~255之间 int i = 0, j = 0; while(src[i] != '\0') //新手warning:不要直接移动src、dest指针 { if(buff[src[i]] != 1) //判断该字符之前是否出现过 { bu
2020-06-08 15:48:30 377
原创 LINUX下部署MQTT代理器之mosquitto的安装部署
源码下载本次部署的linux版本:Ubuntu 16.04.6 LTS首先下载mosquitto源码,源码下载地址http://sources.buildroot.net/mosquitto/,选择你需要的版本,我用的是mosquitto-1.5.8版本。编译解压:tar -xvf mosquitto-1.5.8.tar.gz;cd mosquitto-1.5.8;make;提示如下...
2020-02-16 14:02:57 135 1
原创 谷歌拼音输入法下载
个人一直偏好纯净无广告的谷歌拼音输入法,但是网上搜出来的全是第三方下载站,各种隐藏广告,烦得一批。从网上找到原生版的,在此分享。下载地址....
2019-08-06 10:12:20 288
原创 windows下自动切换并连接wifi热点
这段时间做的一个项目,需要测试产品上wifi模块的功能。测试方式:该wifi模块作为AP热点,笔记本连接这个热点,然后ping外网,ping得通就表示功能OK。废话不多说,进入正题。windows初次连接某个wifi热点的过程中,有一个很关键的步骤:生成wifi配置文件(下面简称profile),当然,这一步是windows根据你的wifi热点自动生成的,所以想要让电脑自动连接一个未连接过的热点...
2019-06-22 13:13:12 1341
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人