- 论坛徽章:
- 0
|
哪位大侠帮帮忙。我写的一个向httpserver发送请求的程序,为啥读到的返回字节(rn)为2920?是字符数组的长度限制吗??
源程序如下:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include "stderr.h"
#include <string.h>
#define HTTP_REQ "GET /CSStarPlus/tabid/115/ctl/Login/Default.aspx?returnurl=%2fcsstarplus%2fdefault.aspx\r\n \r\n "
int main (int argc,char *argv[])
{
if(argc!=2)
{
printf("argument err!\n");
exit(1);
}
int s,c,listensd,connectsd;
struct sockaddr_in httpserver;
struct sockaddr_in client;
listensd = socket(AF_INET,SOCK_STREAM,0);
httpserver.sin_family = AF_INET;
httpserver.sin_port = htons(80);
httpserver.sin_addr.s_addr=inet_addr(argv[1]);
if(c=connect(listensd,(struct sockaddr *)&httpserver,sizeof(httpserver))<0)
{
perror("connect");
exit(1);
}
int send_len,len;
char read_buf[20000];
char buf[]=HTTP_REQ;
send_len=write(listensd,buf,sizeof(buf));
if(send_len<0)
{
printf("write err\n");
exit(1);
}
printf("write ok\n");
int rn;
rn=recv(listensd,read_buf,20000,0);
if(rn <= 0)
{
printf("Can't recieve file!(http)\n");
exit(1);
}
else
{
write(STDOUT_FILENO,read_buf,rn);
printf("%d",rn);
exit(0);
}
close(listensd);
return 0;
} |
|