• Sábado 20 de Abril de 2024, 01:37

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 - fachamix

Páginas: [1] 2 3 ... 9
1
C/C++ / Re:Problema con SOCKET/LINUX
« en: Sábado 7 de Enero de 2012, 13:27 »
old: write(server_sockfd,buffer,sizeof(buffer));
new: write(client_sockfd,buffer,strlen(buffer));


SOLVED!

2
C/C++ / Problema con SOCKET/LINUX
« en: Sábado 7 de Enero de 2012, 04:12 »
Tengo el siguiente codigo, un simple servidor usando sockets sobre linux.

al momento de hacer el "write" se termina la conexion ... y me canse de revisar el codigo. Me duele la cabeza.

aqui el bendito codigo.

Código: C
  1. #include <unistd.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <sys/types.h>
  6. #include <sys/socket.h>
  7. #include <sys/un.h>
  8. #include <netinet/in.h>
  9. #include <arpa/inet.h>
  10.  
  11. int main()
  12. {
  13.     printf("Iniciando servidor ...\n\r");
  14.     int server_sockfd, client_sockfd;
  15.     struct sockaddr_in server_dir, client_dir;
  16.     int server_len, client_len;
  17.     char buffer[1024];
  18.  
  19.     server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
  20.     server_dir.sin_family = AF_INET;
  21.     server_dir.sin_addr.s_addr = inet_addr("10.0.0.4");
  22.     server_dir.sin_port = htons(9981);
  23.  
  24.     server_len = sizeof(server_dir);
  25.     bind(server_sockfd,(struct sockaddr*)(&server_dir),server_len);
  26.  
  27.     listen(server_sockfd,5);
  28.  
  29.     while (1)
  30.     {
  31.         printf("Esperando clientes ...\n\r");
  32.  
  33.         client_len = sizeof(client_dir);
  34.         client_sockfd = accept(server_sockfd,(struct sockaddr*)&client_dir,(socklen_t*)&client_len);
  35.         if (client_sockfd == -1)
  36.         {
  37.             perror("DEBUG");
  38.             exit(EXIT_FAILURE);
  39.         }
  40.         printf("Cliente conectado, esperando datos ...\n\r");
  41.         while (1)
  42.         {
  43.             memset(buffer,'\0',sizeof(buffer));
  44.             int temp = read(client_sockfd,buffer,sizeof(buffer));
  45.             buffer[strlen(buffer) - 2] = '\0';
  46.             printf("Leidos %d \n\r",temp);
  47.             printf("Datos recibidos [%s]\n\r",buffer);
  48.             if (strcmp(buffer,"quit") == 0)
  49.             {
  50.                 break;
  51.             }
  52.             printf("Enviando respuesta de ECHO\n\r"); //ESTO SI SE EJECUTA
  53.             strcpy(buffer,"DATOS-RECIBIDOS"); //ESTO TAMBIEN
  54.             write(server_sockfd,buffer,sizeof(buffer)); //CREO QUE AQUI ESTA EL ERROR,
  55.                                                                         //HACE QUE SE TERMINE EL PROGRAMA ABRUPTAMENTE
  56.         }
  57.         close(client_sockfd);
  58.         printf("Fin de conexion.\n\r");
  59.     }
  60.     close(server_sockfd);
  61.     exit(EXIT_SUCCESS);
  62. }
  63.  

para probar este codigo , ejecuto este servidor, y para el cliente uso TELNET apuntando a la IP.
Logro conectarme y mandar un paquete, pero automaticamente el programa termina abruptamente.

gracias por su ayuda.

3
C/C++ / Re:Una consulta, C++
« en: Lunes 21 de Noviembre de 2011, 13:21 »
codeblocks hermano.

4
C/C++ / Re:Problema imprimir direccion de puntero en C++
« en: Lunes 21 de Noviembre de 2011, 13:20 »
Gracias che. Sabia que "&vint_vector[0] te da begin y &vint_vector[10] te da end." pero no queria quedarme con la duda.

Luego de buscar un poco , me di cuenta de que cout y << no estaban especificados para trabajar con un interador de este tipo.
... es decir.... lo mismo que me dijiste vos.

ah!, de 4 foros, sos el unico que me pudo decir esto.

Saludos y muchas gracias.

5
C/C++ / Problema imprimir direccion de puntero en C++
« en: Miércoles 16 de Noviembre de 2011, 14:05 »
Tengo problemas imprimiendo la direccion de un puntero usando "cout"

Pongo las 2 formas, con printf y cou y devuelven diferentes resultados.

Que estoy haciendo mal ?


Código: C++
  1.  
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     vector<int> vint_vector(10,99);
  11.     vint_vector[0] = 1;
  12.     vint_vector[1] = 2;
  13.     vint_vector[2] = 3;
  14.     vint_vector[3] = 4;
  15.  
  16.  
  17.     cout << "BEGIN = " << &vint_vector.begin() << endl;          //---> prints a wrong address
  18.     printf("BEGIN = %p \n\r",vint_vector.begin());
  19.     for (int i = 0; i <= 10; i++)
  20.     {
  21.         cout << "i = " << i << " direccion vint_vector[i] = " << &vint_vector[i] << endl;
  22.     }
  23.     printf("END = %p \n\r", vint_vector.end());
  24.     cout << "END = " << &vint_vector.end() << endl;             //---> prints a wrong address
  25.  
  26.     return 0;
  27. }

6
C++ Builder / Manipular fecha DateTimePicker
« en: Sábado 27 de Febrero de 2010, 16:54 »
El control DateTimePicker, nos permite seleccionar una fecha de un calendario visual.
La fecha se nos devuelve con el tipo TDateTime, este tipo de datos puede convertirse a String haciendo:

    dtp_fecha->Date.DateString();

donde dtp_fecha , es el puntero de tipo DateTimePicker (del tipo del control visual)

lo que no puedo lograr es , que dado un STRING de fecha, pueda poner al control con la fecha del string.

es decir, el control me permite obtener la fecha cargada al control en tipo String, pero no se como cargarle una fecha al control mediante un dato tipo String

7
C/C++ / impresora virtual
« en: Martes 16 de Febrero de 2010, 16:55 »
puse este post en WINDOWS , pero creo que debe tener mas con programacion que con usar windows. nadie me contesta en ese subforo tampoco. quizas alguno de ustedes, programando , tuvo esta necesidad alguna vez.


"me gustaria saber como agregar una impresora virtual en windows xp , de la misma manera que lo hace el programa PDFcreator que crea una impresora virtual para generar documentos PDF.

me gustaria saber como crear una impresora virtual (es decir que exista de manera logica pero no fisica), y que al enviar un documento para imprimirse en dicha impresora.... como ejecutar una accion ... cualquiera.

no tengo idea de como se hace esto"

8
Windows / impresora virtual
« en: Martes 16 de Febrero de 2010, 05:57 »
me gustaria saber como agregar una impresora virtual en windows xp , de la misma manera que lo hace el programa PDFcreator que crea una impresora virtual para generar documentos PDF.

me gustaria saber como crear una impresora virtual (es decir que exista de manera logica pero no fisica), y que al enviar un documento para imprimirse en dicha impresora.... como ejecutar una accion ... cualquiera.

no tengo idea de como se hace esto

9
Sobre los Foros de SoloCodigo / como cambio el titulo de mi post
« en: Viernes 18 de Septiembre de 2009, 21:46 »
como puedo cambiar el asunto de mi post, cuando ya este solucionado , y agregar la palabra SOLUCIONADO ????

10
C/C++ / Re: convertir tipo
« en: Viernes 18 de Septiembre de 2009, 19:05 »
solucionado:

cvPutText(image,itoa(image->height,buffer,10),cvPoint(10,10),&fuente,CV_RGB(200,0,0));


necesitaba esta funcion: itoa()

saludos

11
C/C++ / convertir tipo
« en: Viernes 18 de Septiembre de 2009, 19:02 »
tengo una estructura, en cuya composicion existe un campo de tipo INT, llamada campoint.

Código: C++
  1. struct ejemplo {
  2.   int campoint;
  3.   char campochar;
  4. };
  5.  

luego tengo un puntero a esa estructura:

Código: C++
  1. struct ejemplo *puntero;
  2.  

luego tengo el puntero apuntando a una estructura tipo ejemplo:

Código: C++
  1. struct ejemplo prueba;
  2. puntero = &prueba;
  3.  

asi , para acceder al campo entero desde el puntero , uso:

Código: C++
  1. puntero->campoint
  2.  

ahora bien, ... aqui viene mi pregunta:

tengo una funcion del tipo:

Código: C++
  1. void funcion(const char*,...);
  2.  

que imprimira en una imagen el campo
Código: C++
  1. char*
  2.  
, y yo quiero imprimir el campo INT en
Código: C++
  1. puntero->campoint
  2.  
.

como deberia llamar a la funcion para que mi dato tipo INT concuerde con el parametro char* de la funcion funcion() ?????

probe con :

funcion((char*)(puntero->campoint));
funcion((const char*)(puntero->campoint));

y nada... alguna sugerencia ????

12
C/C++ / Re: Programar Protocolo
« en: Viernes 18 de Septiembre de 2009, 14:59 »
gracias muchachos, ustedes dos siempre dando la posta.

un saludo


(hace mucho no aparecia por el foro ... estoy haciwendo mi trabajo final de carrera)

13
C/C++ / Programar Protocolo
« en: Viernes 18 de Septiembre de 2009, 06:58 »
se puede programar un protocolo ??? es decir, se puede programar un protocolo , ya sea en linux o windows, que trabaje en la misma capa que TCP o UDP ????? como se hace ??? documentos ?

14
C++ Builder / Re: TImage en Scroll Box.
« en: Lunes 25 de Mayo de 2009, 17:57 »
fijat en los metodos , creo que esta dentro de uno que se llama CANVAS, ahi tiene que estar PIXEL

15
C++ Builder / Re: TImage en Scroll Box.
« en: Jueves 21 de Mayo de 2009, 23:39 »
fijate en que pixel estas .

16
Inteligencia Artificial / Re: libros manuales tutoriales OpenCV?
« en: Sábado 16 de Mayo de 2009, 02:30 »
al ultimolo consegui en taringa.

gracias igual

17
C/C++ / Re: C : ELIMINAR ESPACIOS EN BLANCO DE UNA CADENA
« en: Jueves 14 de Mayo de 2009, 20:19 »
y en que parte del codigo voy almacenando la cadena sin espacios en h ???

18
C/C++ / Re: C : ELIMINAR ESPACIOS EN BLANCO DE UNA CADENA
« en: Jueves 14 de Mayo de 2009, 19:44 »
Cita de: "Eternal Idol"
tmp siempre que no es NULL es un puntero a un espacio (' ') dentro de la cadena original (h en este caso) entonces sprintf le da formato.

sprintf(tmp,"%s",tmp+1);

Por ejemplo:
tmp = " PROBANDO ESTO - CHE";
tmp + 1 = "PROBANDO ESTO - CHE";

entonces tmp pierde el espacio del principio mediante una copia.

perfecto hasta aqui, pero suponiendo que la cadena sea "HOLA FORO SOLOCODIGO", sin espacio al principio:

tmp = "HOLA FORO SOLOCODIGO";
tmp + 1 = "FORO SOLOCODIGO";

supuestamente como lo entiendo, perderia la primera palabra ,.... aunque ya vi queno es asi, que si funciona bien, pero no se porque NO PIERDO LA PRIMER PALABRA  :argh:   :brickwall:

19
C/C++ / Re: AGREGAR FILA A DATAGRIDVIEW ENLAZADO A DATASET
« en: Jueves 14 de Mayo de 2009, 18:26 »
nomanejo ese entorno, pero :

1) averiguar, si se puede desenlazar sin perder lo que ya esta cargado (dudo mucho)

2) NO DESENLAZAR, mantener el enlazado del datasource, y HACER UN ALTA. aqui tienes que tener cuidado, a veces, los grids, tienen propiedades de SOLO LECTURA (desconosco tu caso), debes revisar los atributos de tu grid, si te permite realizar cambios o no, y modifica a gusto los atributos de tu objeto grid.

20
C/C++ / Re: C : ELIMINAR ESPACIOS EN BLANCO DE UNA CADENA
« en: Jueves 14 de Mayo de 2009, 18:22 »
lo probe ahora, y si funciona asi.

pero no entiendo , como hace para sacar los espacios.

se para que sirve strchr.

cuando sprintf, no se porque hace tmp+1

tampoco se, en que momento SACO LOS ESPACIOS A h

una mano señores, de explicacion gaucha de instrccion por instruccion, como un cuento jajajaja.

21
GNU/Linux / Re: Servidor Linux, que distribucion?
« en: Jueves 14 de Mayo de 2009, 15:35 »
VM WARE

22
C/C++ / Re: C : ELIMINAR ESPACIOS EN BLANCO DE UNA CADENA
« en: Jueves 14 de Mayo de 2009, 15:33 »
el codigono funciona en windows.

compila perfectamente pero no funciona.

use codeblocks con MingW.

aqui tu codigo:

Código: C++
  1.  
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     cout << "probando quita espacios" << endl;
  9.     char*tmp;
  10.     while((tmp=strchr("HOLA PROBANDO ESTO - CHE",32))!=NULL)
  11.     sprintf(tmp,"%s",tmp+1);
  12.  
  13.     return 0;
  14. }
  15.  
  16.  

probe poniendo y sacando string.h , no funciona, salta error en el sistema.

23
GNU/Linux / Re: Servidor Linux, que distribucion?
« en: Jueves 14 de Mayo de 2009, 00:19 »
lo del cluster, no es nada complicado hoy por hoy.

existen distribuciones que vienen listas para hacer clusters, las tienes que instalar en las maquinas del futuro cluster, y listo, el cluster se arma solo, de manera automatica.

para servidor, mientras mas liviana la distribucion, y mejor hardware, ... mejor.

www.distrowatch.com

entra en el buscador, y pone la opcion de filtro SERVERS

24
C/C++ / Re: AGREGAR FILA A DATAGRIDVIEW ENLAZADO A DATASET
« en: Jueves 14 de Mayo de 2009, 00:15 »
logico mi amio.

cuando vos enlazas el datagrid a un datasource, es como si estarias manipulando LA FUENTE DE DATOS (datasource) mediante el datagrid. seguramente tu datasource apunta a una BD o no ???

cualquier modificacion que hagas en el datagrid, afectara a la tabla a la que apunta.

agregar una fila, al grid, cuando esta enlazado, es lo mismo que decir que quieres, hacer un alta en la tabla .... no se puede hacer asi.

tienes que desvincular el grid del data source para hacer eso.

seria buenq ue nos digas, con que entorno de desarrollo trabajas ... visual c++ , o builder, .. etc etc etc.

basicamente lo que te digo es que cuando intentes agregar una fila mas al grid, al atributo DATASOURCE, no dejes vacio, que no apunte a nada, desvinculalo de cualquier datasource

25
C++ Builder / Re: Consulta sobre comunicacion Serie e Interrupciones
« en: Miércoles 13 de Mayo de 2009, 02:36 »
si quiere usar HILOS, en la misma ayuda de builder vas a encontrar todo lo que necesitas.

de todas maneras estuve viendo ejemplos por internet, y no son parecidos a como vos los quieres trabajar.

te recomiendo:

http://maikel.galeon.com/serie/bcbcomm.html

http://www.activexperts.com/activcompor ... ppbuilder/

http://www.buddydog.org/C++Builder/c++builder.html

http://www.duamu.com/re/script/1025/id/ ... rary-.html

http://www.marshallsoft.com/wsc4c.htm

http://www.softpedia.com/get/Programmin ... Port.shtml

yo vi que usna de manera distinta

Páginas: [1] 2 3 ... 9