#include <iostream>
#include <unistd.h>
#include <stdlib.h>
#include <recver.h>

#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>

int main(int argc, char* argv[])
{

if ((argc < 3) || (0 == atoi(argv[2])))
{

cout << "usage: appclient server_port server_address" << endl;
return 0;

}

if (argc > 3)
{

cout << "usage: appclient server_port server_address" << endl;
cout << "parameters omited" << endl;

}

//
// Note that SABUL receiver only has open() call
// It contains the function of connect().
// While in SABUL sender there are open() and listen().
//

CSabulRecver* recver = new CSabulRecver;
try
{

recver->open(argv[1], atoi(argv[2]));

}
catch(...)
{

cout << "Failed to Open New Sabul Connection. Program Aborted." << endl;
return 0;

}

int size = 3670000;
char* data = new char[size];

//
// Received 3.67MB data block for 2000 times.
//

for (int i = 0; i < 2000; i++)

recver->recv(data, size);

delete [] data;

recver->close();

return 1;

}