int BBYgetDat(char *dat1line,char *server,char *ita,char *key)
{
FILE * fp;
int fd;
int ret;
struct hostent * hp;
struct sockaddr_in a;
short port = 80;
char databuffer[2048] = {0};
char buffer[256] = {0};
char server0[64];

//declaration
if (-1 == (fd = socket(AF_INET, SOCK_STREAM, 0)))
return 0;
/* get server address */
strcpy(server0,server);
if (0 == (hp = gethostbyname(strcat(server0, ".2ch.net"))))
return 0;
/* connect to server */
a.sin_family = AF_INET;
a.sin_addr.s_addr = *((unsigned long *)hp->h_addr);
a.sin_port = htons(port);
if (-1 == connect(fd, (struct sockaddr *)&a, sizeof(a)))
return 0;

if (NULL == (fp = fdopen(fd, "r+")))
return 0;
fprintf(fp, "GET /%s/dat/%s.dat HTTP/1.1\n", ita, key);
fprintf(fp, "Host: %s:%d\n\n", server0, port);
//dat1line = malloc(2048);
while (1) {
if (fgets(buffer, sizeof buffer, fp) == NULL)
break;
else if(strcmp(buffer,"\r\n") == 0) {
while (1) {
if (fgets(buffer, sizeof buffer, fp) == NULL)
break;
if (strcmp((buffer + strlen(buffer) - 1), "\n") == 0) {
strncat(databuffer, buffer, strlen(buffer) - 1);
break;
} else {
strcat(databuffer, buffer);
}
}
break;
}
}

strcpy(dat1line, databuffer);
close(fd);
fclose(fp);
return 1;
}