コード例 #1
0
ファイル: P36.CPP プロジェクト: agudeloandres/C_Struct_Files
void main()
{
	struct nodo *cabeza,*cabeza1;
	struct nodo *insertar1 (struct nodo *p, int n);
	void insertar2 (struct nodo **p, int n);
	void escribir_lista (struct nodo *p);
	void concatenar (struct nodo **p,struct nodo *q);
	int numero;

	printf ("utilizando la funcion insertar2 ()\n");
	cabeza = NULL;
	printf ("de numero a insertar en la lista\n");
	scanf ("%d",&numero);
	while (numero != 9999) {
		insertar2 (&cabeza,numero);
		printf ("de numero a insertar en la lista\n");
		scanf ("%d",&numero);
	}
	printf ("\n utilizando la funcion insertar1 ()\n");
	cabeza1 = NULL;
	printf ("de numero a insertar en la lista\n");
	scanf ("%d",&numero);
	while (numero != 9999) {
		cabeza1 = insertar1 (cabeza1,numero);
		printf ("de numero a insertar en la lista\n");
		scanf ("%d",&numero);
	}
	concatenar (&cabeza,cabeza1);
	escribir_lista (cabeza);
}
コード例 #2
0
ファイル: P20.CPP プロジェクト: agudeloandres/C_Struct_Files
void main()
{
	struct nodo  *p,*cab;
	void escribir_lista (struct nodo *q);
	void crear_lista1 (struct  nodo **p, int i);
	void insertar_antes (struct nodo *p, int n);

	crear_lista1 (&cab,10);
	p = cab;
	while (p->sig != NULL )
		p = p->sig;
	insertar_antes (cab->sig,8888);
	escribir_lista (cab);

}
コード例 #3
0
ファイル: P10.CPP プロジェクト: agudeloandres/C_Struct_Files
void main()   /* crea una lista */
{
	struct nodo *cab,*q;
	int i = 10;
	void escribir_lista (struct nodo *q);

	cab = NULL;
	while (i > 0) {
		q = localizar;
		q->info = i;
		q->sig = cab;
		cab = q;
		i = i - 1;
	}
	escribir_lista (cab);

}
コード例 #4
0
ファイル: servidor.c プロジェクト: maneta/Template_Final_SO
void *usuarios(void *conector)
{

    printf("dentro de Usuarios \n");
    int code;
    int nchar;
    static char buf[MAX];
    //char mensaje2[MAX];
    int resultado;
    char usuario [80];
    char mensaje_a_cliente[50];
    //char *mensaje_respuesta;

    /*Haciendo la conversion del SocketID pasado por argumento*/
    int con = (int) conector;



    /* Se pasa el valor de con por puntero, no se guarda en variable local y se llama directamente
     * hay que resvisar*/
    printf("El valor del socket es %d \n",con);

    /*Exactamente el mismo problemas anterior*/
    nchar=read(con,buf,MAX);//nchar indica el numero de caractareres recibidos
    buf[nchar]='\0';
    printf("Se ha recibido el mensaje %s \n",buf);


    sscanf (buf,"%d  %s ",&code,usuario);
    printf("el codigo es: %d y el usuario es %s \n",code,usuario);
    code=identify(buf);

    // printf("el codigo es: %d y el usuario es %s \n",code,usuario);


    printf("Empezamos con el primer usuario que utilizaria un Thread\n");

    while( code!=100) {

        switch(code) {
        case 1:
            if (T == 4) {

                sprintf (mensaje_a_cliente,"99 ");
                write(con,mensaje_a_cliente,strlen(mensaje_a_cliente));
                sprintf (mensaje_a_cliente,"100 %s ",usuario);

                write(con,mensaje_a_cliente,strlen(mensaje_a_cliente));
                //close(con);
                //pthread_exit(NULL);
            }
            else
            {
                T++;
                // Agregamos nuevo usuario a nuestra base de datos
                printf("Estas en el caso 1 introducir usuario \n");

                //resultado=new_user(buf);
                //if(resultado==0){
                //     pthread_mutex_lock(&semaforo);
                /*tabla_partida(buf);*/
                sprintf (mensaje_a_cliente,"1 ");
                write(con,mensaje_a_cliente,strlen(mensaje_a_cliente));
                //   pthread_mutex_unlock(&semaforo);
                //}else{
                //sprintf (mensaje2,"Usuario no se ha introducido correctamente");

                /*con no existe en el contesto actual como variable, el argumento no se ha guardado
                 *en una variable local*/
                //     sprintf (mensaje_a_cliente,"2 ");

                //   write(con,mensaje_a_cliente,strlen(mensaje_a_cliente));
                //}
            }
            break;
        case 2:

            // autentificamos al usuario
            printf("Estamos en el caso 2 con el usuario %s \n",usuario);
            resultado=identify_user(buf);

            // autentificacion del usuario es correcta
            if(resultado==0) {

                /* le paso la "con" a la estructura Tusuario y la guardo en la variable conexion de esa estructura.*/
                t.conexion=con;

                /* guardo el nombre del usuario en la estructura de Tusuario en la variable nombre.*/
                strcpy(t.nombre,usuario);

                printf("Se ha anadido correctamente el nombre dentro de la estructura Tusuario %d %s\n",t.conexion,t.nombre);
                pon_usuario (&mi_lista,t);
                escribir_lista (mi_lista);
                sprintf (mensaje_a_cliente,"3 ");
                write(con,mensaje_a_cliente,strlen(mensaje_a_cliente));
            } else {
                printf("El usuario o contrasena no son las correctas \n");
                sprintf (mensaje_a_cliente,"2 ");
                write(con,mensaje_a_cliente,strlen(mensaje_a_cliente));
            }
            break;
        case 3:
            // Listamos a los jugadores conectados.

            construir_lista(mi_lista,con);
            //printf("aqui ya bloqueo\n")
            //printf("Este es el resultado --%s---",mensaje_respuesta);

            break;

            /*** DE MOMENTO LO UNICO QUE PODEMOS HACER SIN TENER THREADS EN EL CLIENTE
                 *   TODO LO QUE VIENE DEBAJO NO SE PUEDE IMPLEMENTAR SIN CONCURENCIA
                 *   AHORA TENIENDO EL VALOR DE CON BIEN PUESTO SACAR LA LISTA ES UNA TONTERIA
                 *   Y LA LISTA TIENE QUE SER GLOBAL
                 *
                  case 4:

                         sprintf(mensaje2,"Estamos en el caso 4 \n");
                     datos1=lista_fecha(buf);

                     [con no existe en el contesto actual como variable, el argumento no se ha guardado
                         en una variable local]

                         write(con,datos1,strlen(datos1));
                         break;

                  case 5:

                         printf("Estamos en el caso 5 \n");
                     datos2=lista_ganadores(buf);
                     [con no existe en el contesto actual como variable, el argumento no se ha guardado
                         *en una variable local]
                         write(con,datos2,strlen(datos2));
                     break;

              case 6:
                     printf("Estamos en el caso 6, a continuación construiremos la lista \n");
                     construir_lista (mi_lista, msge_lista);
                     sprintf (mensaje2,"La lista es: %s\n",msge_lista);
                    [ con no existe en el contesto actual como variable, el argumento no se ha guardado
                         en una variable local]
                         //write(con,mensaje2,strlen(mensaje2));
                         // Me he quedado aqui.....
                 break;

                  case 7:
                     printf("Estamos en el caso 7,buscaremos al usuario y lo elinaremos de la lista de conectados \n");
                     [con no existe en el contesto actual como variable, el argumento no se ha guardado
                         en una variable local]
                         t.conexion=con;
                     strcpy(t.nombre,usuario);
                     printf("El usuario a eliminar es %s",usuario);
                     int p= buscar (usuario, mi_lista);
                     printf (" %s está en la posición %d\n",usuario,p);
                     eliminar (p, &mi_lista);
              *       construir_lista (mi_lista, msge_lista);
              *       printf ("La lista es: %s\n",msge_lista);
                  *       sprintf (mensaje2,"La lista es: %s\n",msge_lista);
              *       [con no existe en el contesto actual como variable, el argumento no se ha guardado
                  *       en una variable local]
                  *       write(con,mensaje2,strlen(mensaje2));
                  *	     break;
              **********************************************************************************************/

            /*fin del switch*/
        }

        nchar=read(con,buf,MAX); //nchar indica el numero de caractareres recibidos
        buf[nchar]='\0';
        printf("Se ha recibido el mensaje %s \n",buf);
        code=identify(buf);
        printf("el codigo es: %d\n",code);

        /*fin del while*/
    }


    /* Enviamos mensaje de logoff al Cliente, FALTA ELIMINAR CLIENTE DE LA LISTA DE CONECTADOS
     * Cerramos el socket, Matamos el Threads y decrementamos el numero de Threads usados*/

    sprintf (mensaje_a_cliente,"100 %s ",usuario);
    write(con,mensaje_a_cliente,strlen(mensaje_a_cliente));
    // int u = buscar(usuario,mi_lista);
    //eliminar(u,&mi_lista);

    T--;
    C--;
    close(con);
    pthread_exit(NULL);

}