C语言下载HTTP的源代码
我们参考了一本书上的用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;
}
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;
}
...全文
相关推荐
基于C语言Http请求上传文件到服务器与下载文件的源代码
C语言编写,http请求,上传文件到指定服务器,下载服务器文件,指网络图片地址,下载网络图片实例,里面含有软件和操作说明,不明白可以私信我,看到我会回复的。
能下载网站的源代码
一款可以随意下载网页中的图片,flash的程序,并支持多层下载,用c语言写的
c语言通过http协议下载
程序功能 1、通过http语言,在后台下载资源,实现软件更新 2、程序使用c语言实现,效率高 3、想知道软件如何更新,想近一步了解http协议,或者很闲,可以参考一下。
httpC语言经典实例教程
一个实例,帮助刚学习网络协议的同学.http实例教程http实例教程http实例教程
基于http协议的客户端下载模块(C语言实现)
基于http协议的客户端下载模块(C语言实现)


