Example #1
0
int main(int argc, char *argv[]) {

  if (argc != 3) // Test for correct number of arguments
    DieWithUserMessage("Parameter(s)",
        "<Server Address/Name> [<Server Port/Service>]");

  char *server = argv[1];     // First arg: server address/name
  char *service = argv[2]; 

  // Create a connected TCP socket
  int sock = SetupTCPClientSocket(server, service);
  if (sock < 0)
    DieWithUserMessage("SetupTCPClientSocket() failed", "unable to connect");

  FILE *str = fdopen(sock,"r+");
  char buffer[MAXSTRINGLENGTH];
  //while((scanf("%s",buffer) != EOF)){
  while(gets(buffer) && strlen(buffer) != 0){
      int sSize;
      int stringLen = strlen(buffer); // Determine input length
      if((sSize = PutMsg(buffer, stringLen, str)) < 0)
          DieWithSystemMessage("PutMsg() failed");
      //printf("Sending %d-byte..\n",sSize);
      /*
      GetNextMsg(str,buffer,MAXSTRINGLENGTH);
      printf("get echo\n");
      printf("%s\n",buffer);
      */
      memset(buffer,0,sizeof(buffer));
  }
  fclose(str);
  printf("quit.\n");
  return 0;
}
 int main(int argc, char *argv[])
 {
 	if(argc < 4 || argc > 5)
 	{
 		DieWithUserMessage("Parameter(s)", "<Server-Address/Name> <Cmd Idx> <Echo Word> [<Server Port/Service>]");
 	}

 	char *server = argv[1];					/* First argument : Server address */
 	char *echoString = argv[3];				/* Second argument : Echo string */
 	char *port = argv[4];					/* Third argument (Optional): port/service number */
 	FILE *fp;
 	static CLNTARG clntArgs;
 	static PMSG pmsg;
 	static CMDARG cmdArg;
 	static char cmdArgs[MAX_NUM_PARAMS][MAX_PARAM_BUFFER_SIZE];
  	
  	/* Copy Echo string */
  	strcpy(cmdArgs[0], argv[3]);

 	/* Create a connect TCP socket */
 	int sock = SetupTCPClientSocket(server, port);
 	if(sock < 0)
 	{
 		DieWithUserMessage("SetupTCPClientSocket() failed", "unable to connect");
 	}

 	/* Open file stream using socket */
 	fp = fdopen(sock, "r+");
 	if(fp == NULL)
 	{
 		DieWithSystemMessage("fopen: NULL Pointer");
 	}
 

 	clntArgs.cmdIdx = atoi(argv[2]);
 	clntArgs.argv = (char (*)[MAX_PARAM_BUFFER_SIZE])cmdArgs;
 	clntArgs.filePtr = fp;

 	/* Invode Client Handler */
 	TCPClientHandler((void *)&pmsg, (void *)&clntArgs, (void *)&cmdArgs);


	/* Close the socket */
 	close(sock);										
 	exit(0);
 }