读书人

关于网络!该怎么解决

发布时间: 2012-02-23 22:01:34 作者: rapoo

关于网络!
下面是这个程序的connect函数为什么一直都不成功呢?
我怀疑是struct sockaddr_in sa这个参数传递错误,麻烦哪位大哥帮一下忙。上面压得很紧阿。
BOOL IP100ComSendToNet(const unsigned char *IpAddr,const unsigned char *DataBuf)
{
struct sockaddr_in sa;
unsigned int ret;
SOCKET socketId;
int status;

IP100ComIpAdrStringToData(IpAddr,&ret);

sa.sin_family=AF_INET;
sa.sin_port=htons(9000);

sa.sin_addr.S_un.S_addr = htons(ret);

socketId=socket(AF_INET, SOCK_DGRAM,0);


if(socketId == ERROR)
printf( "socket fail:%d\n ", ERROR);

if(ret != ERROR)
{
if(connect(socketId,(struct sockaddr_in *) &sa, sizeof(sa)) == ERROR)
//if(connect(socketId,(const struct sockaddr FAR*) &sa, sizeof(sa)) == ERROR)
printf( "send fail:%d\n ", ERROR);
else
{
printf( "send success:%d\n ", OK);
status = send(socketId, DataBuf, strlen(DataBuf), 0);//MSG_DONTWAIT);
}
}

close(socketId);

return OK;
}


[解决办法]
sa.sin_addr.S_un.S_addr = htons(ret); 有问题

读书人网 >C语言

热点推荐