C语言下载HTTP的源代码

lishanliyi lishanliyi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我们参考了一本书上的用C语言实现的下载网页HTTP的程序.可是运行时出现错误.我们不知道哪里的问题.错误详细信息如下:
socket.cobj: error LINK2001:unresolved external symbol _imp_closesocket@4
socket.cobj: error LINK2001:unresolved external symbol _imp_recv@16
socket.cobj: error LINK2001:unresolved external symbol _imp_WSACleanup@0
socket.cobj: error LINK2001:unresolved external symbol _imp_send@16
socket.cobj: error LINK2001:unresolved external symbol _imp_connect@12
socket.cobj: error LINK2001:unresolved external symbol _imp_gethostbyname@4
socket.cobj: error LINK2001:unresolved external symbol _imp_htons@4
socket.cobj: error LINK2001:unresolved external symbol _imp_WSAGetLastError@0
socket.cobj: error LINK2001:unresolved external symbol _imp_socket@12
socket.cobj: error LINK2001:unresolved external symbol _imp_WSAStartup@8
socket.cexe: fatal error LNK1120:10 unresolved externals
我们的主函数如下:(请哪位大侠帮帮我们.)
int main(int argc,char**argv)
{
WSADATA wsd;
SOCKET sClient;
char szBuffer[DEFAULT_BUFFER];
int ret,i;
struct sockaddr_in server;
struct hostent *host=NULL;

ValidateArgs(argc,argv);
if(WSAStarup(MAKEWORD(2,2),&wsd)!=0)
{
printf("Failde to load Winsock library!\n");
return 1;
}
strcpy(szMessage,DEFAULT_MESSAGE);
sClient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(sClient==INVALID_SOCKET)
{
printf("socket() failde:%d\n",WSAGetLastError());
return 1;
}
server.sin_family=AF_INET;
server.sin_port=htons(iPort);
if(server.sin_addr.s_addr==INADDR_NONE)
{
host=gethostbyname(szServer);
if(host==NULL)
{
printf("Unable to resolve server:%s\n",szServer);
return 1;
}
CopyMemory(&server.sin_addr,host->h_addr_list[0],host->h_length);
}
if(connect(sClient,(struct sockaddr *)&server,sizeof(server))==SOCKET_ERROR)
{
printf("connect() failed:%d\n",WSAGetLastError());
return 1;
}
for(i=0;i<dwCount;i++)
{ret=send(sClient,szMessage,strlen(szMessage),0);
if(ret==0)
break;
else if(ret==SOCKET_ERROR)
{
printf("send() failed:%\n",WSAGetLastError());
break;
}
printf("Send %d bytes\n",ret);
if(!bSendOnly)
{
ret=recv(sClient,szBuffer,DEFAULT_BUFFER,0);
if(ret==0)
break;
else if(ret=SOCKET_ERROR)
{
printf("recv() failed:%d\n",WSAGetLastError());
break;
}
szBuffer[ret]='\0';
printf("RECV[%d bytes]:'%s'\n",ret,szBuffer);
}
}
closesocket(sClient);
WSACleanup();
return 0;
}
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
lishanliyi
C语言 70,039 成员 243,237 内容