int main(int argc, char *argv[]) { struct sharknado { int a;//4 char b;//1 float c; }; struct sharknado s={0x0f000000,'a',ReverseFloat(2.0f)}; int sockfd, portno, n; struct sockaddr_in serv_addr; struct hostent *server; char buffer[256]; if (argc < 3) { fprintf(stderr,"usage %s hostname port\n", argv[0]); exit(0); } portno = atoi(argv[2]); sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd < 0) _error("ERROR opening socket"); server = gethostbyname(argv[1]); if (server == NULL) { fprintf(stderr,"ERROR, no such host\n"); exit(0); } bzero((char *) &serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); serv_addr.sin_port = htons(portno); if (connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr)) < 0) _error("ERROR connecting"); // printf("Please enter the message: "); // bzero(buffer,256); // fgets(buffer,255,stdin); //The only difference between send() and write() is the presence of flags. With zero flags parameter, send() is equivalent to write() n = write(sockfd,(char *)&s, sizeof(s)); if (n < 0) _error("ERROR writing to socket"); bzero(buffer,256); n = read(sockfd,buffer,255); if (n < 0) _error("ERROR reading from socket"); printf("%s\n",buffer); return 0; }
int main(int argc, char** argv) { FILE *inf; FILE *outf; long dx_ofs=40; // index for dx,type float long dy_ofs=44; long dz_ofs=48; long w1_ofs=198; //index for wave 1, type short long w2_ofs=200; long w3_ofs=202; long w4_ofs=204; long w5_ofs=206; float dx,dy,dz; short w1,w2,w3,w4,w5=0; /* * char mode[]="0664"; */ if(argc==1) { printf("%s: please supply an input filename.\n",argv[0]); exit(1); } if(argc==2) { printf("%s: please supply an output filename.\n",argv[0]); exit(1); } /* if (chmod(argv[1],strtol(mode,0,8) < 0)) { fprintf(stderr,"%s: error in chmod(%s,%s) - %d (%s)\n", argv[0], argv[1], mode, errno, strerror(errno)); exit(1); } */ if (inf=fopen(argv[1],"r")) { fseek(inf,dx_ofs,SEEK_SET); fread(&dx,sizeof(float),1,inf); fread(&dy,sizeof(float),1,inf); fread(&dz,sizeof(float),1,inf); fseek(inf,w1_ofs,SEEK_SET); fread(&w1,sizeof(short),1,inf); fread(&w2,sizeof(short),1,inf); fread(&w3,sizeof(short),1,inf); fread(&w4,sizeof(short),1,inf); fread(&w5,sizeof(short),1,inf); fclose(inf); } else { fprintf(stderr,"%s: could not open input file %s.\n",argv[0],argv[1]); exit(1); } if(fabs(dx)>1) { // printf("fabs(dx) is %.5f\n",fabs(dx)); dx=ReverseFloat(dx); dy=ReverseFloat(dy); dz=ReverseFloat(dz); w1=ReverseShort(w1); w2=ReverseShort(w2); w3=ReverseShort(w3); w4=ReverseShort(w4); w5=ReverseShort(w5); } printf("Data: %f %f %f %i %i %i %i %i \n",dx,dy,dz,w1,w2,w3,w4,w5); // printf("Data-rev: %f %f %f %i %i %i %i %i \n",ReverseFloat(dx),ReverseFloat(dy),ReverseFloat(dz),ReverseShort(w1),w2,w3,w4,w5); if (outf=fopen(argv[2],"r+")) { fseek(outf,dx_ofs,SEEK_SET); fwrite(&dx,sizeof(float),1,outf); fwrite(&dy,sizeof(float),1,outf); fwrite(&dz,sizeof(float),1,outf); fseek(outf,w1_ofs,SEEK_SET); fwrite(&w1,sizeof(short),1,outf); fwrite(&w2,sizeof(short),1,outf); fwrite(&w3,sizeof(short),1,outf); fwrite(&w4,sizeof(short),1,outf); fwrite(&w5,sizeof(short),1,outf); fclose(outf); } else { fprintf(stderr,"%s: could not open output file %s.\n",argv[0],argv[2]); exit(1); } return(0); }