"); //-->
用C 实现的一个URL解析的小程序。留个记录在这里。
#include "string.h"
#include "stdio.h"
char URL[]="http://bitgarden.test.wimang.com:80/hms/hardware/soft/updateSoft.do?softwareVersion=1.1&hardwareVersion=1.0";
//char URL[]="bitgarden.test.wimang.com:80/hms/hardware/soft/updateSoft.do?softwareVersion=1.1&hardwareVersion=1.0";
//char URL[]="bitgarden.test.wimang.com/hms/hardware/soft/updateSoft.do?softwareVersion=1.1&hardwareVersion=1.0";
char ADDR[30];
int PORT=0;
char GETContext[100]="0";
void getAddr(char *url,int len)
{
char *storeAddr;
int k=0;
int m=0;
static const char headline[]="http://";
// 定位 开头
if(strstr(url,headline) !=NULL)
{
storeAddr=&(url[sizeof(headline)]);
}
else
{
storeAddr=url;
}
if(strchr(storeAddr,':')!=NULL)
{
for(k=0;k<len;k++)
{
if(storeAddr[k]==':')
{
break;
}
}
strncpy(ADDR,storeAddr,k);
printf("HOSTis%s\r\n",ADDR);
storeAddr=&(storeAddr[k]);//:80/hms
PORT=atoi(storeAddr+1);
/*for(m=0;m<len;m++)
{
if(storeAddr[m]=='/')
{
break;
}
}*/
// storeAddr=&(storeAddr[m]);// /hms
storeAddr=strchr(storeAddr,'/');
strcpy(GETContext,storeAddr);
printf("port is %d\r\n",PORT) ;
printf("GET %s\r\n",GETContext);
}
/* else if(strchr(storeAddr,'/')!=NULL)
{
for(k=0;k<len;k++)
{
if(storeAddr[k]=='/')
{
break;
}
}
strncpy(ADDR,storeAddr,k);
printf("HOSTis%s\r\n",ADDR);
PORT=80;
}*/
}
int main()
{
getAddr(URL,strlen(URL)) ;
}
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
黄仁勋回应DeepSeek冲击:算力需求将被推高 芯片反而更吃紧
ARM 体系结构
问个问题,如果再4510B下开发应用,应该注意的问题~~~
八通道红外遥控电路
为什么 在UCLINUX下PING 外部的IP地址不通
AIX Reference for Sun Solaris Administrators.part3.rar
智能座舱架构与芯片-硬件篇
[求助]请问/proc
与产业领袖同行:大联大商贸中国区总裁沈维中畅谈数字化浪潮下的“智变”之路
智能座舱架构与芯片-软件篇
嵌入式Linux网络开发 下
谷歌宣布达成规模最大的一笔收购
继电器开关电路
红外自动水龙头
毫米波雷达技术革新:解读IWRL6432 WCSP单芯片传感器的突破与应用
嵌入式Linux内核裁减与移植 下
FPGA在视频处理领域的应用 上
红外探测语言警示器
一个语法问题 ,不好意思,刚才写错了
嵌入式Linux内核裁减与移植 上
TI超小型MCU:1.38mm²如何重塑嵌入式未来
ARM 9嵌入式系统设计与开发教程
嵌入式Linux网络开发 中
电压表
微波上变频技术的新突破:ADMV1013S-CSL芯片解析与未来应用
AIX Reference for Sun Solaris Administrators.part1.rar
D7630的应用电路
AIX Reference for Sun Solaris Administrators.part2.rar
一个语法问题
远距离红外遥控电路