main(int argc, char **argv) { CLIENT *clnt; int *result; char *server; char *message; if (argc != 3) { fprintf(stderr, "usage: %s host message\n", argv[0]); return 1; } server = argv[1]; message = argv[2]; /* * コマンド行で指定したサーバの * MESSAGEPROG の呼び出しで使用する * クライアント「ハンドル」を作成 */ clnt = clnt_create(server, MESSAGEPROG, PRINTMESSAGEVERS, "tcp"); if (clnt == (CLIENT *) NULL ) { /* * サーバーとの接続確立に失敗したため、 * エラーメッセージを表示して終了 */ clnt_pcreateerror(server); return 1; } /* * サーバー上のリモートプロシージャ printmessage を * 呼び出す */ result = printmessage_1(&message, clnt); if (result == (int *) NULL ) { /* * サーバーの呼び出しでエラーが発生したため、 * エラーメッセージを表示して終了 */ clnt_perror(clnt, server); return 1; } /* * リモートプロシージャ呼び出しは正常終了 */ if (*result == 0) { /* * サーバーがメッセージの表示に失敗したため、 * エラーメッセージを表示して終了 */ fprintf(stderr, "%s: could not print your message\n", argv[0]); return 1; } /* サーバーのコンソールにメッセージが出力された */ printf("Message delivered to %s\n", server); clnt_destroy(clnt); return 0; }
void *chatting(void *optn) { operand opt = *((operand*)(optn)) ; CLIENT *clnt; char *server; server=(char*)malloc(100*sizeof(char)) ; operand *result_1; printf("enter ip of frnd\n") ; scanf("%s",server) ; char *namefrnd ; namefrnd = (char*)malloc(100*sizeof(char)) ; printf("enter his name\n") ; scanf("%s",namefrnd) ; opt.yourname[0]='\0' ; strcat(opt.yourname,namefrnd) ; clnt = clnt_create (server, MESSAGEPROG, PRINTMESSAGEVERS, "udp"); if (clnt == NULL) { //clnt_pcreateerror (server); exit (1); } while(1) { result_1 = (operand*)printmessage_1(&opt, clnt); if (result_1 == (operand *) NULL) { clnt_perror (clnt, "call failed"); } printf("%s : %s \n",result_1->myname,result_1->message) ; printf("REPLY\n") ; scanf("%s",&(opt.message)) ; if(strcmp(opt.message,"abuse")==0) exit(1) ; } clnt_destroy (clnt); }
main(int argc, char **argv) { CLIENT *clnt; int *result; char *server; char *message; if(argc != 3) { fprintf(stderr,"usage:%s host message\n",argv[0]); exit(1); } server = argv[1]; message = argv[2]; clnt = clnt_create(server, MESSAGEPROG, PRINTMESSAGEVERS, "tcp"); if(clnt == (CLIENT *) NULL) { clnt_pcreateerror(server); printf("error\n"); exit(1); } result = printmessage_1(&message,clnt); if(result == (int *)NULL) { clnt_perror(clnt,server); exit(1); } if(*result == 0){ fprintf(stderr,"%s: could not print your message\n",server); clnt_destroy(clnt); exit(0); } else printf("result : %d\n", &result); }
int main (int argc, char *argv[]) { if (argc != 3 ) { // printf ("usage: %s server_host\n", argv[0]); exit (1); } operand printmessage_1_arg; operand printmessages_1_arg; strcpy(printmessage_1_arg.myname,argv[1]); strcpy(printmessage_1_arg.message,argv[2]); strcpy(printmessages_1_arg.myname,argv[1]); strcpy(printmessages_1_arg.message,argv[2]); int choice ; printf("What do u want to do\n1.Group Chat 2. Indivual Chat\n"); scanf("%d", &choice); if(choice==2) { // FILE *fp ; //fp = fopen("messages","a+"); CLIENT *clnt; char *server; server=(char*)malloc(100*sizeof(char)) ; operand *result_1; printf("enter ip of frnd\n") ; scanf("%s",server) ; char *namefrnd ; namefrnd = (char*)malloc(100*sizeof(char)) ; printf("enter his name\n") ; scanf("%s",namefrnd) ; printmessage_1_arg.yourname[0]='\0' ; strcat(printmessage_1_arg.yourname,namefrnd) ; clnt = clnt_create (server, MESSAGEPROG, PRINTMESSAGEVERS, "udp"); if (clnt == NULL) { //clnt_pcreateerror (server); exit (1); } while(1) { result_1 = (operand*)printmessage_1(&printmessage_1_arg, clnt); if (result_1 == (operand *) NULL) { clnt_perror (clnt, "call failed"); } printf("%s : %s \n",result_1->myname,result_1->message) ; // fprintf(fp,"%s : %s \n",result_1->myname,result_1->message); //fclose(fp) ; printf("REPLY\n") ; scanf("%s",&(printmessage_1_arg.message)) ; if(strcmp(printmessage_1_arg.message,"abuse")==0) exit(1) ; } clnt_destroy (clnt); } else { printf("enter number of people u want to add in "); int n; scanf("%d",&n); int iret1 ; int iret2 ; pthread_t threads1, threads2; iret1 = pthread_create(&threads1,NULL,chatting,&printmessage_1_arg); sleep(10) ; iret2 = pthread_create(&threads2,NULL,chatting,&printmessages_1_arg); pthread_join(threads1,NULL); pthread_join(threads2,NULL); } }