• Sábado 9 de Noviembre de 2024, 03:47

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Tootsie

Páginas: [1]
1
C/C++ / Re: Pasar Mensaje De Minúsclas A Mayúsculas
« en: Lunes 6 de Noviembre de 2006, 02:41 »
He modificado lo siguiente en mi código, pero me sigue saliendo en minúsclas:

Código: Text
  1.  
  2. #include <ctype.h>
  3.  
  4. ...
  5. int i;
  6. ...
  7.  
  8.  
  9.  
  10.    do {
  11.  
  12.                memset(mensaje,0x0,TAMBUFFER);
  13.  
  14.                for(i=0; i<strlen(mensaje); i++) mensaje[i]=toupper(mensaje[i]);
  15.  
  16.                         result = recv(ID_socket_ser2, mensaje, TAMBUFFER, 0);
  17.  
  18.                
  19.  
  20.                if (result<0) {
  21.  
  22.                            printf("error\n");
  23.  
  24.                            exit(-1);
  25.  
  26.                }
  27.  
  28.                else
  29.  
  30.                {
  31.  
  32.                            printf("%s\n",mensaje);
  33.  
  34.                }
  35.  
  36.    } while(strncmp(mensaje,"fin",3));
  37.  
  38.  
  39.  
  40.  
  41.  
  42.    return 0;
  43.  
  44.  
  45.  

¿qué hago mal?

2
C/C++ / Pasar Mensaje De Minúsclas A Mayúsculas
« en: Lunes 6 de Noviembre de 2006, 02:22 »
Hola,

He hecho un programa que recibe un mensaje de una máquina cliente a la máquina servidora. El mensaje se recibe ok por la pantalla, pero siempre en minúsuclas. Lo que me gustaría hacer es:

1. Escribir un mensaje por pantalla del cliente
2. Cuando aparezca en la pantalla del servidor, me devuelva el mensaje en MAYUSCULAS

Todo lo que he probado hasta el momento no funciona. Creo que tengo que usar el toupp(), pero me da un error de casting, pues paso un carácter y me pide un entero  

CODIGO DEL SERVIDOR
Código: Text
  1.  
  2.  
  3. #include <sys/types.h>
  4. #include <sys/socket.h>
  5. #include <netinet/in.h>
  6. #include <arpa/inet.h>
  7. #include <netdb.h>
  8. #include <stdio.h>
  9. #include <unistd.h>
  10.  
  11. #define TAMBUFFER 256
  12.  
  13. int main()
  14. {
  15.    int ID_socket_ser, ID_socket_ser2, result, long_cli;
  16.    struct sockaddr_in address_ser, address_cli;
  17.    char mensaje[TAMBUFFER];
  18.  
  19.  
  20.    ID_socket_ser=socket(AF_INET, SOCK_STREAM,0);
  21.    if (ID_socket_ser==-1)
  22.    {
  23.       printf("error creacion socket\n");
  24.       exit(-1);
  25.    }
  26.    
  27.  
  28.    address_ser.sin_family = AF_INET;
  29.    address_ser.sin_addr.s_addr = htonl(INADDR_ANY);
  30.    address_ser.sin_port = htons(6001);
  31.  
  32.    result = bind(ID_socket_ser, (struct sockaddr *) &address_ser, sizeof(address_ser));
  33.    if (result<0) {
  34.       printf("error\n");
  35.       exit(-1);
  36.    }
  37.    
  38.  
  39.    listen(ID_socket_ser,2);
  40.  
  41.  
  42.    long_cli = sizeof(address_cli);
  43.  
  44.    ID_socket_ser2 = accept(ID_socket_ser, (struct sockaddr *) &address_cli, &long_cli);
  45.    if (ID_socket_ser2<0) {
  46.       printf("Error\n");
  47.       exit(-1);
  48.    }
  49.    
  50.  
  51.  
  52.    do {
  53.       memset(mensaje,0x0,TAMBUFFER);
  54.       result = recv(ID_socket_ser2, mensaje, TAMBUFFER, 0);
  55.       if (result<0) {
  56.          printf("error\n");
  57.          exit(-1);
  58.       }
  59.       else
  60.       {
  61.          printf("%s\n",mensaje);
  62.       }
  63.    } while(strncmp(mensaje,"fin",3));
  64.  
  65.  
  66.    return 0;
  67.  
  68. }
  69.  
  70.  
  71.  
  72.  


CÓDIGO DEL CLIENTE
Código: Text
  1.  
  2.  
  3. #include <sys/types.h>
  4. #include <sys/socket.h>
  5. #include <netinet/in.h>
  6. #include <arpa/inet.h>
  7. #include <netdb.h>
  8. #include <stdio.h>
  9. #include <unistd.h>
  10.  
  11. int main(int argc, char *argv[])
  12. {
  13.    int ID_socket_cli, result;
  14.    struct sockaddr_in address_ser, address_cli;
  15.    struct hostent *h;
  16.    char mensaje[] = "Esto es un mensaje al mundo.";
  17.  
  18.  
  19.    if(argc<2) {
  20.     printf("uso : %s servidor \n", argv[0]);
  21.     exit(1);
  22.   }
  23.  
  24.  
  25.    ID_socket_cli=socket(AF_INET, SOCK_STREAM,0);
  26.    if (ID_socket_cli==-1)
  27.    {
  28.       printf("error\n");
  29.       exit(-1);
  30.    }
  31.    
  32.  
  33.    address_cli.sin_family = AF_INET;
  34.    address_cli.sin_addr.s_addr = htonl(INADDR_ANY);
  35.    address_cli.sin_port = htons(0);
  36.  
  37.    result = bind(ID_socket_cli, (struct sockaddr *) &address_cli, sizeof(address_cli)); if (result<0) {
  38.       printf("error\n");
  39.       exit(-1);
  40.    }
  41.    
  42.  
  43.  
  44.    h = gethostbyname(argv[1]);
  45.    printf("Escribe mensaje para %s\n",inet_ntoa(*(struct in_addr *)h->h_addr_list[0]));
  46.    address_ser.sin_family = h->h_addrtype;
  47.    memcpy((char *) &address_ser.sin_addr.s_addr, h->h_addr_list[0], h->h_length);
  48.    address_ser.sin_port = htons(6001);
  49.  
  50.  
  51.    result = connect(ID_socket_cli, (struct sockaddr *) &address_ser, sizeof(address_ser));
  52.    if (result<0) {
  53.       printf("error\n");
  54.       exit(-1);
  55.    }
  56.    
  57.  
  58.    do {
  59.       strcpy(mensaje,"");
  60.       gets(mensaje);
  61.       result = send(ID_socket_cli, mensaje, strlen(mensaje)+1, 0);
  62.       if (result<0) {
  63.          printf("error\n");
  64.          exit(-1);
  65.       }
  66.    } while(strncmp(mensaje,"fin",3));
  67.  
  68.  
  69.  
  70.  
  71.  
  72.    return 0;
  73.  
  74. }
  75.  
  76.  
  77.  
  78.  

Páginas: [1]