《ACE程序员教程》中的例2-4,使用数据报的客户端,编译完后,怎么都调不通。经过仔细调试,发现原因在这里:
Client(
char
*
remote_host,
int
port)
:remote_addr_(remote_host),
local_addr_((u_short) 0 ),local_(local_addr_)
... {
data_buf = new char[DATA_BUFFER_SIZE];
remote_addr_.set_port_number(port);
}
:remote_addr_(remote_host),
local_addr_((u_short) 0 ),local_(local_addr_)
... {
data_buf = new char[DATA_BUFFER_SIZE];
remote_addr_.set_port_number(port);
}
成员初始化列表中这句 remote_addr_(remote_host) ,如果给的是单纯 ip 地址,比如 127.0.0.1,则会初始化不成功,查看 ACE 源代码,此时应该给 ip:port 的模式 ,比如 127.0.0.1:5678。或者改成 remote_addr_(port, remote_host) 也可以。
目前来说,《ACE程序员教程》给我的帮助是最大的,希望我的这篇文章能帮助 《ACE程序员教程》更加完善。