peakzhang 发表于 2008-1-14 21:04:55

ACE的初级问题--《ACE程序员教程》中的udp例子不管用

我是个ace的初学者,现在已经顺利的装上了ace,并且可以编译成功。
但是我自己写了个小例子,就是用udp收发数据,在发送数据时,调用ACE_SOCK_Dgram::send()方法总是返回-1。
我没有找到ace的帮助文档,不知道返回值表示什么。不过从以往的经验,我想-1肯定是失败了,而且服务端也确实没有收到数据。
我又试了《ACE程序员教程》中给出的udp的例子,也是同样的结果。
请问我该怎么办呢,请有经验的朋友给个提示,谢谢。
另外,我在发数据时,防火墙会给出提示,说我的程序要访问网络,我想打开端口应该是成功了的。

peakzhang 发表于 2008-1-14 21:05:12

现在问题已经解决了。

在初始化远程端口号时,是这样写的:
remote_addr_(remote_host),也就是调用的这个函数原型:
ACE_INET_Addr::ACE_INET_Addr(const char address[]);
而ace帮助文档中说,这个address必须是这样的形式:"127.0.0.1:5000",如果这个字符串中没有':'的话,就会把address当成是端口号,而把ip设为INADDR_ANY,也就是0.0.0.0,所以就出了错。

z1y1m1 发表于 2008-3-31 21:44:27

那是设置address的时候必须指定端口号吗?
页: [1]
查看完整版本: ACE的初级问题--《ACE程序员教程》中的udp例子不管用