Beispiel #1
0
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);
 
}
Beispiel #3
0
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);
}

	}