www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式大雜燴
[導(dǎo)讀]關(guān)注「Linux大陸」,選擇「星標(biāo)公眾號」一起進(jìn)步!之前為了方便測試部門保存一些測試數(shù)據(jù),需要臨時(shí)開發(fā)一個(gè)簡單的nanomsgserver,與板子端的client在局域網(wǎng)內(nèi)進(jìn)行通信,接收client數(shù)據(jù)并保存。關(guān)于nanomsg的簡單使用介紹可查看往期文章:一個(gè)實(shí)用通信庫的簡單使...

關(guān)注「Linux大陸」,選擇「星標(biāo)公眾號」一起進(jìn)步!

之前為了方便測試部門保存一些測試數(shù)據(jù),需要臨時(shí)開發(fā)一個(gè)簡單的nanomsg server,與板子端的client在局域網(wǎng)內(nèi)進(jìn)行通信,接收client數(shù)據(jù)并保存。關(guān)于nanomsg的簡單使用介紹可查看往期文章:一個(gè)實(shí)用通信庫的簡單使用分享

作為server端,需要綁定電腦的IP,不同的電腦IP是不一樣的,所以使用不同的電腦時(shí)需要修改IP才能正常使用這個(gè)server程序。

在不需要重新編譯程序的情況下,有如下兩種方法可以滿足這個(gè)需求:

  • 把IP寫在配置文件里,比如ini格式的配置文件里,然后server程序讀取配置文件里的IP,再進(jìn)行綁定。
  • server程序自動獲取IP地址并綁定。
下面分別使用這兩種方法:

從配置文件中讀取IP地址

配置文件的格式有很多,如JSON、INI等。這里我選用的是INI格式的配置文件,.ini 文件是 Initialization File 的縮寫,即初始化文件。INI文件由節(jié)、鍵、值組成,注解使用分號表示(;)。例如:

[Section1 Name]
KeyName1_1=value1_1 ;這是注釋
KeyName1_2=value1_2
[Section2 Name]
KeyName2_1=value2_1
KeyName2_2=value2_2
這里我們使用inih解析器來對INI文件進(jìn)行解析。

inih:一個(gè)C 語言編寫的 INI 文件解析器。

inih解析器的地址:

https://github.com/benhoyt/inih

同時(shí),inih解析器也已經(jīng)被收錄于大雜燴資源匯總貼中:

https://gitee.com/zhengnianli/EmbedSummary

inih的使用很簡單,下面一起來看一下。

下載得到的inih內(nèi)容如圖所示:

ini.cini.h 放到我們的工程下即可。這里我們使用一個(gè)測試工程:

同時(shí),新建一個(gè) ip.ini 文件存放于工程目錄下。ip.ini 文件的內(nèi)容如:

[ip] ;Section1
ip_addr = 192.168.1.103

[test] ;Section2
name = ZhengN
num = 66
下面我們編寫代碼test.c來解析這個(gè)文件:

//?微信公眾號:嵌入式大雜燴
#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?
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉