⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sm_pic_down.c

📁 一个用于银行视频联播网中客户端广告机的网络通信部分
💻 C
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>  
#include <fcntl.h>

/*******socket header******/
#include <sys/socket.h>
#include <net/if.h>
#include <netdb.h>
#include <netinet/in.h>
#include <net/if_arp.h>
/*************************/
#include "ConfigInfo.h"
#include "SmBsString.h"
//#include "webcomm.h"
#include "Vcrc.h"

extern char* host2ip(char * host);
void Pack_Req_Header(char sendmsgbuf[],char appth[],char servip[]);

/*convert host name to ip address*/
char* host2ip(char *host,char *address)
{
 char *ptr,**pptr;
 struct hostent *hptr;
 char str[32];

 ptr = host;
address=malloc(20);
/*call gethostbyname(),get hostent struct*/
/*struct hostent{
       char *h_name;              //主机名
       char **h_alias;       //主机别名列表
       int h_addrtype;       //主机地址类型
       int h_length;           //主机地址长度
       char **h_addr_list;//主机IP地址列表
}*/
 if( (hptr = gethostbyname(ptr) ) == NULL )
 {
  printf("gethostbyname error for host:%s\n", ptr);
  return (char*)NULL;
 }

 for(pptr = hptr->h_aliases; *pptr != NULL; pptr++) ;

 switch(hptr->h_addrtype)
 {
  case AF_INET:
   pptr=hptr->h_addr_list;
   for(;*pptr!=NULL;pptr++)
    sprintf(address,"%s", inet_ntop(hptr->h_addrtype, *pptr, str, sizeof(str)));
   break;
  default:
   printf("unknown address type\n");
   break;
 }
 return address;

 	} 
/*调用该函数从服务器返回的信息头中取得下载文件的长度*************************
*eg:
**   HTTP/1.1 200 OK                                                                                                                                   *************
**   Via:1.1 FILESERVER
**   Cnnection:Keep-Alive                                                                                                                             *************
**    Proxy-Connection:Keep-Alive
**    Content-Length:4355680           //文件长度,通过子串Content-Length:和:/r/n取中间

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -