Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //CLIENT
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <string.h>
- int n,codice,y,sockfd;
- char recvline[1025];
- typedef struct utente{
- char ID[10];
- int password;
- int stato;
- int vinte;
- int perse;
- }t_utente;
- t_utente array[5];
- t_utente ricevi;
- int a,i = 0,j = 0,scelta;
- char* user;
- int pass = 0;
- char recvline[1025];
- char buff[4096];
- struct sockaddr_in servaddr;
- int controllo = -1;
- int log_in_user(char* user);
- int log_in_pass(int pass);
- void stampa();
- int main(int argc, char **argv){
- if (argc != 2){
- fprintf(stderr,"usage: %s <IPaddress>\n",argv[0]);
- exit (1);
- }
- if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
- fprintf(stderr,"socket error\n");
- exit (1);
- }
- //creo la socket
- servaddr.sin_family = AF_INET;
- servaddr.sin_port = htons(3100);
- if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0){
- fprintf(stderr,"inet_pton error for %s\n", argv[1]);
- exit (1);
- }
- //do la definizione alla socket, la famiglia ip4, la porta associata e faccio la conversione
- //della stringa che rappresenta l'indirizzo d rete
- if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0){
- fprintf(stderr,"connect error\n");
- exit(1);
- }
- //cerco di connettermi al server
- while (controllo != 1){
- user = malloc(sizeof(char));
- printf("LOG IN\n");
- printf("\nNOME UTENTE:");
- scanf("%s",user);
- i = log_in_user(user);
- printf("\n\nPASSWORD: ");
- scanf("%d",&pass);
- j = log_in_pass(pass);
- stampa();
- read(sockfd,&controllo,sizeof(controllo));
- }
- int scelta = 0;
- while(scelta != 4){
- printf("\n\n----MENU----\n");
- printf("\n[0]-Visualizza partite");
- printf("\n[1]-Sfida utente attivi");
- printf("\n[2]-Utenti attivi");
- printf("\n[3]-Utenti occupati");
- printf("\n[4]-USCITA!");
- printf("\n\nSCELTA: ");
- scanf("%d",&scelta);
- snprintf(buff,sizeof(buff), "%d\r\n",scelta);
- if( write(sockfd,buff, strlen(buff)) != strlen(buff)){
- perror("write");
- exit(1);
- }
- switch(scelta){
- case 0:break;
- case 1:break;
- case 2:stampa();
- break;
- }
- }
- }
- int log_in_user(char* user){
- int i=0;
- snprintf(buff, 10, "%s\r\n",(char*) user);
- if ( write(sockfd, buff, strlen(buff)) != strlen(buff)){
- perror("write");
- exit(1);
- }
- }
- int log_in_pass(int pass){
- int j=0;
- snprintf(buff,sizeof(buff), "%d\r\n",pass);
- if ( write(sockfd, buff, strlen(buff)) != strlen(buff)){
- perror("write");
- exit(1);
- }
- }
- void stampa(){
- read(sockfd, &ricevi, sizeof(ricevi));
- printf("\nUtente: %s \n", ricevi.ID);
- printf("---STATO---\n");
- printf("(0)-OFFLINE\n(1)-ONLINE\n(2)-BUSY\n");
- printf("----[%d]----", ricevi.stato);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement