示例#1
0
文件: hw7_client.c 项目: hne3/OS
void
serverprog_1(char *host)
{
	CLIENT *clnt;
	int  *result_1;
	char  get_1_arg;
	int  *result_2;
	char  put_1_arg;

#ifndef	DEBUG
	clnt = clnt_create (host, SERVERPROG, SERVERPROTO, "udp");
	if (clnt == NULL) {
		clnt_pcreateerror (host);
		exit (1);
	}
#endif	/* DEBUG */

	result_1 = get_1(&get_1_arg, clnt);
	if (result_1 == (int *) NULL) {
		clnt_perror (clnt, "call failed");
	}
	result_2 = put_1(&put_1_arg, clnt);
	if (result_2 == (int *) NULL) {
		clnt_perror (clnt, "call failed");
	}
#ifndef	DEBUG
	clnt_destroy (clnt);
#endif	 /* DEBUG */
}
示例#2
0
void
rpccracker_1(char *host)
{
    CLIENT *clnt;
    enum clnt_stat retval_1;
    void *result_1;
    message  get_1_arg;

#ifndef	DEBUG
    clnt = clnt_create (host, rpcCracker, CAVERLEE4PRES, "udp");
    if (clnt == NULL) {
        clnt_pcreateerror (host);
        exit (1);
    }
#endif	/* DEBUG */

    retval_1 = get_1(&get_1_arg, &result_1, clnt);
    if (retval_1 != RPC_SUCCESS) {
        clnt_perror (clnt, "call failed");
    }
#ifndef	DEBUG
    clnt_destroy (clnt);
#endif	 /* DEBUG */
}
示例#3
0
void
keyval_prog_1(char *host)
{
				CLIENT *clnt;
				enum clnt_stat retval_1;
				bool_t result_1;
				row  put_1_arg;
				enum clnt_stat retval_2;
				char *result_2;
				int  get_1_arg;
				enum clnt_stat retval_3;
				bool_t result_3;
				int  delete_1_arg;

#ifndef	DEBUG
					clnt = clnt_create (host, KEYVAL_PROG, KEYVAL_VERS, "udp");
					if (clnt == NULL) {
									clnt_pcreateerror (host);
									exit (1);
					}
#endif	/* DEBUG */
			
			char *INIT[7] = {"0:Monday", "1:Tuesday", "2:Wednesday", "3:Thursday", "4:Friday", "5:Saturday",  "6:Sunday"};
			init_keyval_store(clnt, INIT);
			while(true){
					char cmd[50];
					printf("Enter Command\n-------\nGET:<key>\nPUT:<key>:<value>\nDELETE:<key>\n------\n");
					scanf("%s",cmd);
					printf("-------\n");
					char tokens [3][26];
					char *delim = ":";
					char *token;
					token =strtok(cmd,delim);
					int count = 0;
					while(token != NULL){
						if(count == 3){
										printf("Invalid Input\n");
										break;
						}
//					printf("%s\n",token);
						strcpy(tokens[count],token);
						count++;
						token = strtok(NULL, delim);
					}
					if(count == 3 && token != NULL)break;
					if(strcmp(tokens[0], "PUT")== 0){
									put_1_arg.key = atoi(tokens[1]);
									strcpy(put_1_arg.value, tokens[2]);
									retval_1 = put_1(&put_1_arg, &result_1, clnt);
									if (retval_1 != RPC_SUCCESS) {
													clnt_perror (clnt, "call failed");
									}
									if(result_1 == TRUE){
										printf("PUT SUCCESS\n");
									}else{
										printf("PUT FAILED\n");
									}
					}
					else if(strcmp(tokens[0], "GET")== 0){
									result_2 = (char *)malloc(sizeof(char)*26);
									get_1_arg = atoi(tokens[1]);
									retval_2 = get_1(&get_1_arg, &result_2, clnt);
									if (retval_2 != RPC_SUCCESS) {
													clnt_perror (clnt, "call failed");
									}
									printf("GET:%d => %s\n", get_1_arg, result_2);
					}
					else if(strcmp(tokens[0], "DELETE")== 0){
									delete_1_arg = atoi(tokens[1]);
									retval_3 = delete_1(&delete_1_arg, &result_3, clnt);
									if (retval_3 != RPC_SUCCESS) {
													clnt_perror (clnt, "call failed");
									}
									if(result_3 == TRUE){
										printf("DELETE SUCCESS\n");
									}else{
										printf("DELETE FAILED\n");
									}
					}
					else{
							printf("Unrecognized Command\n");
					}
	}
#ifndef	DEBUG
	clnt_destroy (clnt);
#endif	 /* DEBUG */

}