|
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
« en: Lunes 6 de Noviembre de 2006, 02:41 »
He modificado lo siguiente en mi código, pero me sigue saliendo en minúsclas: #include <ctype.h> ... int i; ... do { memset(mensaje,0x0,TAMBUFFER); for(i=0; i<strlen(mensaje); i++) mensaje[i]=toupper(mensaje[i]); result = recv(ID_socket_ser2, mensaje, TAMBUFFER, 0); if (result<0) { printf("error\n"); exit(-1); } else { printf("%s\n",mensaje); } } while(strncmp(mensaje,"fin",3)); return 0;
¿qué hago mal?
2
« 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 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <unistd.h> #define TAMBUFFER 256 int main() { int ID_socket_ser, ID_socket_ser2, result, long_cli; struct sockaddr_in address_ser, address_cli; char mensaje[TAMBUFFER]; ID_socket_ser=socket(AF_INET, SOCK_STREAM,0); if (ID_socket_ser==-1) { printf("error creacion socket\n"); exit(-1); } address_ser.sin_family = AF_INET; address_ser.sin_addr.s_addr = htonl(INADDR_ANY); address_ser.sin_port = htons(6001); result = bind(ID_socket_ser, (struct sockaddr *) &address_ser, sizeof(address_ser)); if (result<0) { printf("error\n"); exit(-1); } listen(ID_socket_ser,2); long_cli = sizeof(address_cli); ID_socket_ser2 = accept(ID_socket_ser, (struct sockaddr *) &address_cli, &long_cli); if (ID_socket_ser2<0) { printf("Error\n"); exit(-1); } do { memset(mensaje,0x0,TAMBUFFER); result = recv(ID_socket_ser2, mensaje, TAMBUFFER, 0); if (result<0) { printf("error\n"); exit(-1); } else { printf("%s\n",mensaje); } } while(strncmp(mensaje,"fin",3)); return 0; }
CÓDIGO DEL CLIENTE #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <unistd.h> int main(int argc, char *argv[]) { int ID_socket_cli, result; struct sockaddr_in address_ser, address_cli; struct hostent *h; char mensaje[] = "Esto es un mensaje al mundo."; if(argc<2) { printf("uso : %s servidor \n", argv[0]); exit(1); } ID_socket_cli=socket(AF_INET, SOCK_STREAM,0); if (ID_socket_cli==-1) { printf("error\n"); exit(-1); } address_cli.sin_family = AF_INET; address_cli.sin_addr.s_addr = htonl(INADDR_ANY); address_cli.sin_port = htons(0); result = bind(ID_socket_cli, (struct sockaddr *) &address_cli, sizeof(address_cli)); if (result<0) { printf("error\n"); exit(-1); } h = gethostbyname(argv[1]); printf("Escribe mensaje para %s\n",inet_ntoa(*(struct in_addr *)h->h_addr_list[0])); address_ser.sin_family = h->h_addrtype; memcpy((char *) &address_ser.sin_addr.s_addr, h->h_addr_list[0], h->h_length); address_ser.sin_port = htons(6001); result = connect(ID_socket_cli, (struct sockaddr *) &address_ser, sizeof(address_ser)); if (result<0) { printf("error\n"); exit(-1); } do { strcpy(mensaje,""); gets(mensaje); result = send(ID_socket_cli, mensaje, strlen(mensaje)+1, 0); if (result<0) { printf("error\n"); exit(-1); } } while(strncmp(mensaje,"fin",3)); return 0; }
Páginas: [1]
|
|
|