// Copyright (c) 2001 David Muse
// See the file COPYING for more information
#include <rudiments/inetclientsocket.h>
#include <rudiments/error.h>
#include <stdio.h>
#include <time.h>
#ifdef RUDIMENTS_NAMESPACE
using namespace rudiments;
#endif
int main(int argc, const char **argv) {
if (argc<3) {
printf("usage: inetclntbench [buffer size] [bytesperiteration] [iterations]\n");
exit(0);
}
uint32_t buffersize=
charstring::toUnsignedInteger(argv[1]);
uint32_t bytesperiteration=
charstring::toUnsignedInteger(argv[2]);
uint32_t iterations=
charstring::toUnsignedInteger(argv[3]);
char *bytes=new char[bytesperiteration];
if (!bytes) {
printf("buffer allocation failed\n");
exit(0);
}
for (uint32_t i=0; i<bytesperiteration; i++) {
bytes[i]='C';
}
// create an inet socket client
inetclientsocket clnt;
// connect to a server on localhost, listening on port 8000
if (clnt.connect("localhost",8000,-1,-1,1,1)<0) {
printf("connect failed: %s\n",error::getErrorString());
exit(1);
}
clnt.setWriteBufferSize(buffersize);
time_t start=time(NULL);
for (uint32_t i=0; i<iterations; i++) {
clnt.write(bytes,bytesperiteration);
}
clnt.flushWriteBuffer(-1,-1);
time_t end=time(NULL);
printf("total time=%d\n",end-start);
// close the connection to the server
clnt.close();
}