|
我用udp跟远程通信,采用了reacotor,不知道为什么register_handler之后,handle_events会立即返回,并且socket可以recv,不过返回值为-1
示例代码如下,是朝一个不存在的ip发udp消息,应该是没有反馈的。
ACE_Reactor* reactor = ACE_Reactor::instance();
ACE_Time_Value tv(2);
ACE_INET_Addr local,remote("192.168.3.3", 6000);
ACE_SOCK_Dgram sock(ocal);
char buffer[] = {"haha"};
sock.send(buffer, sizeof(buffer), remote);
Test test;
reactor->register_handler(sock.get_handle(), &test, ACE_Event_Handler::READ_MASK);
int r = reactor->handle_events(tv);
int t = sock.recv(buffer, sizeof(buffer), remote);
想不明白,希望大家能帮忙看一下,谢谢。 |
|