一个UDP的问题
#include <ace/SOCK_Dgram.h>#include <ace/INET_Addr.h>
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
ACE_INET_Addr remoteAddr(3000,"192.168.0.1"); //所连接的远程地址
ACE_INET_Addr localAddr; //本地地址信息
ACE_SOCK_Dgram peer(localAddr); //通信通道
int j = peer.send("hello",5,remoteAddr); //发送消息
if (j != -1)
{
char buf;
int bc = peer.recv(buf,0,remoteAddr); //接收消息
if( bc != -1)
{
string s(buf,bc);
cout<<endl<<"rev:\t"<<s<<endl;
}
}
peer.close();
return 0;
}
上面是我的代码.
我的问题是如果192.168.0.1是ping不通的或者192.168.0.1没有发udp给我,那我的peer.recv()方法就一直堵塞在那了,请问这个该怎么解决. 设置发送或者接收超时啊。看接口文档。 // 第二个参数为什么是0??
int bc = peer.recv(buf,0,remoteAddr); //接收消息
建议楼主先用socket写些小程序,熟悉一些基本的API和数据结构后再学ACE.
页:
[1]