net-snmp API分为两种,一种叫传统API(Traditional API),一种叫单个API(Single API)。传统的API严格来说是不支持多线程的,在多线程环境下容易崩溃;Single API是支持多线程的,使用起来非常方便,有一个demo是连续启动20个线程同时调用Single API去操作,确实是没有出现问题的。
该demo是使用signle api去实现snmp读,写也是类似的。基本方法是用single api直接替换到传统的api(除了几个函数参数有差别外,大部分的参数都是一样的)。
全部代码,gcc直接编译,可测试。