资料介绍
winsock编程实例
#include
#include
#include
#include
#include
void get_file(char *host_ip,char *file);
void get_ip(char *host_name,char *ip);
int main(int argc,char ** argv)
{
char add_str[256];
char *temp_str;
char host_ip[16];
char file_str[256]={0};
int len=0;
while(1)
{
memset(add_str,0,256);
memset(host_ip,0,16);
memset(file_str,0,256);
printf("web address:");
scanf("%s",add_str);
if(strcmp(add_str,"exit") ==0 )break;
//the style of web address like this
//"http://www.54sh.com/index/index.aspx"
temp_str = strtok(add_str,": /");
if(strcmp(temp_str,"http") != 0)
printf("only 'http' be seported!!");
//so it just like this
//"http","www.54sh.com","index","index.aspx"
temp_str = strtok(NULL,": /");
get_ip(temp_str,host_ip);
temp_str = strtok(NULL,": /");
while(temp_str != NULL)
{
strcpy(file_str+len,temp_str);
len += strlen(temp_str);
file_str[len++] = '/';
temp_str = strtok(NULL,": /");
}
file_str[len-1] = 0;
get_file(host_ip,file_str);
}
printf("exiting...");
return 0;
}
void get_file(char *host_ip,char *file)
{
FILE *pfile;
WSADATA ws;
SOCKET sock;
int result;
struct sockaddr_in addr;
char order[256];
char buf[100];
WSAStartup(0x0101,&ws);
sock = socket(AF_INET,SOCK_STREAM,0);
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.s_addr = inet_addr(host_ip);
result = connect(sock,(struct sockaddr *)&addr,sizeof(addr));
printf("\nconnecting to host %s ...\n",host_ip);
if(SOCKET_ERROR == result)
{
WSACleanup();
printf("\n can not connet to host %s\n",host_ip);
}
else
{
printf("\nconnect ok,start to get file...\n");
strcpy(order,"GET /");
strcpy(order+5,file);
int len = strlen(order);
strcpy(order + len ," \r\n");
// if(strcmp(file,"") == 0)
strcpy(file,"index.htm");
pfile = fopen(file,"w");
result = send(sock,order,strlen(order),0);
do
{
result = recv(sock,buf,100,0);
buf[result] = 0;
fwrite(buf,1,strlen(buf),pfile);
printf(buf);
}while(result != 0);
fclose(pfile);
}
WSACleanup();
}
void get_ip(char *host_name,char *ip)
{
WSADATA ws;
WSAStartup(0x0101,&ws);
hostent *phent;
phent = gethostbyname(host_name);
strcpy(ip,inet_ntoa(*(in_addr *)(phent->h_addr_list[0])));
WSACleanup();
}
- 三菱PLC编程实例项目例程 14次下载
- 三菱PLC编程实例项目例程之输送机机械手 29次下载
- GPRS终端/模块/modem使用Winsock控网络编程 1次下载
- 单片机C语言和汇编语言混合编程实例详解 224次下载
- 单片机的编程100实例大全 147次下载
- PLC编程梯形图的基本规则和编程实例说明 59次下载
- 面向对象与图形编程的详细资料和实例说明 11次下载
- 关于LabView编程实例说明资料下载.pdf 13次下载
- Python编程实例 0次下载
- C#编程实例与技巧 0次下载
- FX编程实例 1次下载
- PLC的原理、编程与应用(实例) 8次下载
- abb_plc_500编程软件使用实例 6次下载
- 基于Winsock的视频点对点传输实现
- 基于WINSOCK控件的VC网络通讯程序
- 单片机编程实例总结 813次阅读
- 西门子SCL编程实例——周期性运行(更新版) 735次阅读
- 单片机编程实例大全 2747次阅读
- 西门子PLC编程控制实例:接线图及梯形图程序 5054次阅读
- 基础的PLC编程实例 955次阅读
- 30个PLC编程实例 8367次阅读
- 基础的PLC编程实例介绍 1415次阅读
- 基础的PLC编程实例 1552次阅读
- PLC的7个基础指令和4个编程实例分享 1.1w次阅读
- PLC梯形图编程有哪些规范_plc梯形图编程实例 6766次阅读
- 人机界面简单编程实例介绍 2.2w次阅读
- PLC现场实例电气原理图及编程 5.1w次阅读
- 基于Winsock控件的远程环境在线监测系统设计与实现 1387次阅读
- python串口编程实例 4.6w次阅读
- mapreduce编程实例 1.1w次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多