日期:2014-05-20  浏览次数:20787 次

一个大概是兼容性的问题
为什么我以前在VC6做的网络程序,在VC6和VS2003下都能运行,在2005运行就出错呢?
出错部分代码:
svraddr.sin_family=AF_INET;
svraddr.sin_port=htons(port);
svraddr.sin_addr.s_addr=inet_addr(pAddr);
memset(svraddr.sin_zero,0,8);
if(svraddr.sin_addr.s_addr==INADDR_NONE)
{
struct   hostent   *host=NULL;
host=gethostbyname(pAddr);
if(host==NULL)
{
return   GetLastError();
}
else
memcpy(&svraddr.sin_addr,host-> h_addr_list[0],host-> h_length);
}
if(connect(s,(SOCKADDR   *)&svraddr,sizeof(svraddr))==SOCKET_ERROR)//这里返回错误
{
return   GetLastError();
}
在connect后返回错误代码(10022):提供了一个无效参数


------解决方案--------------------
up