嵌入式开发小记,实用小知识分享
时间:2021-10-09 14:34:58
手机看文章
扫描二维码
随时随地手机看文章
[导读]关注「Linux大陆」,选择「星标公众号」一起进步!之前为了方便测试部门保存一些测试数据,需要临时开发一个简单的nanomsgserver,与板子端的client在局域网内进行通信,接收client数据并保存。关于nanomsg的简单使用介绍可查看往期文章:一个实用通信库的简单使...
关注「Linux大陆」,选择「星标公众号」一起进步! 之前为了方便测试部门保存一些测试数据,需要临时开发一个简单的nanomsg server,与板子端的client在局域网内进行通信,接收client数据并保存。关于nanomsg的简单使用介绍可查看往期文章:一个实用通信库的简单使用分享作为server端,需要绑定电脑的IP,不同的电脑IP是不一样的,所以使用不同的电脑时需要修改IP才能正常使用这个server程序。在不需要重新编译程序的情况下,有如下两种方法可以满足这个需求:
- 把IP写在配置文件里,比如ini格式的配置文件里,然后server程序读取配置文件里的IP,再进行绑定。
- server程序自动获取IP地址并绑定。
从配置文件中读取IP地址
配置文件的格式有很多,如JSON、INI等。这里我选用的是INI格式的配置文件,.ini 文件是Initialization File
的缩写,即初始化文件。INI文件由节、键、值组成,注解使用分号表示(;)。例如:[Section1 Name]
KeyName1_1=value1_1 ;这是注释
KeyName1_2=value1_2
[Section2 Name]
KeyName2_1=value2_1
KeyName2_2=value2_2
这里我们使用inih解析器来对INI文件进行解析。inih:一个C 语言编写的 INI 文件解析器。inih解析器的地址:
https://github.com/benhoyt/inih同时,inih解析器也已经被收录于大杂烩资源汇总贴中:
https://gitee.com/zhengnianli/EmbedSummaryinih的使用很简单,下面一起来看一下。下载得到的inih内容如图所示:把
ini.c
与 ini.h
放到我们的工程下即可。这里我们使用一个测试工程:同时,新建一个 ip.ini
文件存放于工程目录下。ip.ini
文件的内容如:[ip] ;Section1
ip_addr = 192.168.1.103
[test] ;Section2
name = ZhengN
num = 66
下面我们编写代码test.c来解析这个文件:// 微信公众号:嵌入式大杂烩
#include
#include
#include
#include "ini.h"
typedef struct
{
const char* ip_addr;
const char* name;
int num;
} configuration;
static int handler(void* user, const char* section, const char* name,
const char* value)
{
configuration* pconfig = (configuration*)user;
#define MATCH(s, n) strcmp(section, s) == 0