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