//Send Data With Header to Client
void datasend(int sock,char* URL)
{ 
  int m,n=BUF_SIZE,hlen;//hlen is header length
  FILE *fp;
  char *head=constructHeader(URL);
  char wbuf[BUF_SIZE];
  bzero(wbuf,BUF_SIZE);
  fp=fopen(URL+1,"rb");
   hlen=strlen(head);
   printf("%s\n",head);
   strcpy(wbuf,head);
   //printf("%d",hlen);
   //printf("%d",m);
   m=fread(wbuf+hlen,1,BUF_SIZE-hlen,fp);//combine header and data
   if (m < 0) error("ERROR read from file");
   m=send (sock,wbuf,hlen+m,0);
   if (m < 0) error("ERROR writing to socket");
   //printf("%s",wbuf);
   bzero(wbuf,BUF_SIZE);
  while (n == BUF_SIZE)
    {n=fread(wbuf,1,BUF_SIZE,fp);
     //printf("%d",n);
     if (n < 0) error("ERROR read from file");
     m=send(sock,wbuf,BUF_SIZE,0);
     //printf("%s",wbuf);
     //printf("%d",m);
     if (m < 0) error("ERROR writing to socket");
     bzero(wbuf,BUF_SIZE);
     //if(feof(fp)==0) break;
    }
  fclose(fp);
 }
Exemplo n.º 2
0
			BamCat(
				std::vector<std::string> const & rfilenames, 
				bool const putrank = false,
				bool const rstreaming = false
			) 
			: BamAlignmentDecoder(putrank), 
			  streaming(rstreaming),
			  infos(libmaus::bambam::BamAlignmentDecoderInfo::filenameToInfo(rfilenames)), 
			  Pwrappers(constructWrappers(infos,streaming)),
			  Pheader(constructHeader(infos,Pwrappers)),
			  header(*Pheader),
			  fileid(-1), 
			  wrapper(), 
			  decoder(0)
			{
			}