http client connect to cgi program
时间:2009-06-12 来源:djstava
关连之前的cgi程序,此程序向cgi程序发送"http://192.168.0.179/cgi-bin/getDate"消息,相当于在浏览器里输入http://192.168.0.179/cgi-bin/getDate
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#define BUFSIZE 1024
#define DestIp "192.168.0.179"
#define DestPort 80
#define Req "GET http://192.168.0.179/cgi-bin/djstava_edge?rtsp://192.168.0.179/test.ts\r\n HTTP/1.1 Connection: Close\r\n\r\n"
#define ReqLen strlen(Req)
int main(int argc, char *argv[])
{
ssize_t i;
int nRequestLen;
char strResponse[BUFSIZE]={0};
char strRequest[BUFSIZE]={0};
int sockfd, numbytes;
struct sockaddr_in dest_addr;
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("socket");
exit(1);
}
dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(DestPort);
dest_addr.sin_addr.s_addr = inet_addr(DestIp);
if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(struct sockaddr)) == -1)
{
perror("connect");
exit(1);
}
strncpy(strRequest, Req,ReqLen);
nRequestLen = ReqLen;
if (write(sockfd,strRequest,nRequestLen) == -1)
{
perror("write");
exit(1);
}
while(1)
{
i = read(sockfd,strResponse,BUFSIZE-1);
if(0 >= i)
{
break;
}
strResponse[i]='\0';
printf("%s\n",strResponse);
}
close(sockfd);
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#define BUFSIZE 1024
#define DestIp "192.168.0.179"
#define DestPort 80
#define Req "GET http://192.168.0.179/cgi-bin/djstava_edge?rtsp://192.168.0.179/test.ts\r\n HTTP/1.1 Connection: Close\r\n\r\n"
#define ReqLen strlen(Req)
int main(int argc, char *argv[])
{
ssize_t i;
int nRequestLen;
char strResponse[BUFSIZE]={0};
char strRequest[BUFSIZE]={0};
int sockfd, numbytes;
struct sockaddr_in dest_addr;
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("socket");
exit(1);
}
dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(DestPort);
dest_addr.sin_addr.s_addr = inet_addr(DestIp);
if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(struct sockaddr)) == -1)
{
perror("connect");
exit(1);
}
strncpy(strRequest, Req,ReqLen);
nRequestLen = ReqLen;
if (write(sockfd,strRequest,nRequestLen) == -1)
{
perror("write");
exit(1);
}
while(1)
{
i = read(sockfd,strResponse,BUFSIZE-1);
if(0 >= i)
{
break;
}
strResponse[i]='\0';
printf("%s\n",strResponse);
}
close(sockfd);
}
相关阅读 更多 +