#include "socket.h" #include #define BUF_SIZE 1048567 #define FILE_NAME 20 void RMPerror(char *string) { printf("%s\n",string); } int main(int argc, char **argv) { int readsd, writesd, nfound, byteread, bytewrite; fd_set rmask, wmask, mask; char groupName[20]; char rbuf[BUF_SIZE]; char wbuf[BUF_SIZE]; char rfilename[FILE_NAME]; char wfilename[FILE_NAME]; struct timeval timeout; FILE *rfile, *wfile; timeout.tv_sec=3; timeout.tv_usec=0; if(argc < 3) { exit(1); } strcpy(groupName, argv[1]); strcpy(rfilename, argv[2]); rfile = fopen(rfilename, "r"); if((writesd = RMPSocket()) == -1) { RMPerror("socket"); exit(1); } if(RMPConnect(writesd, groupName) == -1) { RMPerror("connect"); exit(1); } while(1) { if((byteread=fread(wbuf, 1, BUF_SIZE, rfile)) == 0) break; bytewrite = RMPWrite(writesd, wbuf, byteread); if (bytewrite != -1) { printf("Written: %d bytes\n", bytewrite); } else { RMPerror("write"); break; } if(nfound == 0) { puts("timeout\n"); continue; } } RMPClose(writesd); }