日期:2014-05-16  浏览次数:20861 次

linux网络开发inet_ntop的问题
问题如下:
环境在virtual box中装的Centos 6.3 x64,
服务端代码
connfd = accept(listenfd,(struct sockaddr*)&cliaddr,&clilen);
if( inet_ntop(AF_INET,&cliaddr.sin_addr,cliaddr_str,sizeof(cliaddr_str)) != NULL)
{
    cout<<cliaddr_str<<endl;
}
客户端第一次连接的时候,该cliaddr_str总是“255.127.0.0”,第二次连接就是正确的了,
不知道怎么回事,代码应该没问题,
只要服务端重启,第一次连又变成了“255.127.0.0”,再连接又正常了
求大侠解惑

------解决方案--------------------
没看出来,试试cliaddr_str先memset;以及直接用inet_ntoa(cliaddr.sin_addr)打印结果看看?
------解决方案--------------------
clilen赋值为sizeof(cliaddr)了吗