关于异步,我找了很多资料,java方面的比较多,可c的少之又少,很多就是简单提一下,也么说怎么用,最后终于还是自己研究出来了
异步分为服务端异步与客户端异步两部分,理论上他们两者是无关的,不论服务端同步与否,客服端都可以做成异步的。
客户端异步
客户端异步比较简单,服务端可以使用任何server,TThreadPoolServer或TNonblockingServer等随意,客户端不调用自动生成的函数原型,
改为分别调用分拆开来的send与recv两个即可,例如下面代码:
//函数名为invoke,函数原型为:
string invoke(1:WS_OP_TYPE type, 2:string msg);
//同步调用方式代码为(retstr为返回字符串,另外两个为传入参数):
client.invoke(retstr, WS_OP_TYPE::WS_OP_STORE_DEVICE_ACTION, msgstr);
//异步调用方式代码为:
client.send_invoke(WS_OP_TYPE::WS_OP_STORE_DEVICE_ACTION, msgstr);
client.send_invoke(WS_OP_TYPE::WS_OP_STORE_DEVICE_ACTION, msgstr1);
client.recv_invoke(retstr);
client.recv_invoke(retstr1);