#include "socket.h"
#include <time.h>

#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);
}