elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Trokan.c Ayuda Windows C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Trokan.c Ayuda Windows C  (Leído 2,244 veces)
Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Trokan.c Ayuda Windows C
« en: 2 Septiembre 2010, 16:26 pm »

Buenas, estoy programando un mini-server en C,  que en Linux he desarrollado bastante mejor, pero necesito en Windows.
He escrito este code para ir mejorandolo, pero "algo" hace que se salte el accept y aunque nadie se conecte salta al siguiente paso xD.

El code:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <winsock.h>
  4.  
  5. int main ()
  6. {
  7.    WSADATA wsaData;
  8.    WSAStartup(MAKEWORD(2, 0), &wsaData);
  9.  
  10.    struct sockaddr_in host, client;
  11.    int a=sizeof (struct sockaddr);
  12.    SOCKET newsock;
  13.    SOCKET sockfd=socket (2, 1, 0);
  14.    host.sin_family=AF_INET;
  15.    host.sin_addr.s_addr=0;
  16.    host.sin_port=htons (31337);
  17.    memset (host.sin_zero, 0, 8);
  18.  
  19.    bind (sockfd, (struct sockaddr*)&host, sizeof (struct sockaddr*));
  20.    listen (sockfd, 1);
  21.    while (1)
  22.    {
  23.        newsock=accept (sockfd, (struct sockaddr*)&client, &a);
  24.        send (newsock, "Hola!\n", 6, 0);
  25.        printf ("Conex. correcta.\n");
  26.        closesocket (newsock);
  27.    }
  28.    closesocket (sockfd);
  29.    return 0;
  30. }
  31.  
Qué falla??? Como ven sale infinitamente el printf!!! Y nadie se conecta!!! Y no te puedes conectar!!!

Saludos y gracias

Saludos


En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
clodan

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Trokan.c Ayuda Windows C
« Respuesta #1 en: 2 Septiembre 2010, 17:05 pm »

mira, puede ser que siga asi porqe entra al while y no lo comparas con nada

osea pones while 1... while 1 que? entendes?

osea si pones while tenes qe poner una condicion, onda while (x<1){} y cosas asi, sino va a seguir repitiendose


En línea

bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: Trokan.c Ayuda Windows C
« Respuesta #2 en: 2 Septiembre 2010, 18:01 pm »

no verificas en ningun caso el resultado de las funciones anteriores NECESARIAS para que puedas aceptar conexion alguna. revisa que el fallo esta antes de accept, el tercer parametro de bind no es correcto.
« Última modificación: 2 Septiembre 2010, 18:06 pm por ctlon » En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Trokan.c Ayuda Windows C
« Respuesta #3 en: 3 Septiembre 2010, 11:30 am »

Clodan, no es necesario poner nada mas que un uno porque el computer luego lo pasa a ensamblador y ahi lo que queda es hacer la operacion entre parentesis, si la hay y si el resultado es positivo, o sea, diferente de cero, hace lo que viene entre las llaves.
Hay que ver como de grande es un code con una sola instruccion WHILE!!!

Ya he visto el fallillo xD no es un puntero. Voy a provarlo ahora mismo. Muxas gracias ctlon. Eso normalmente lo hago despues, pero ya ves xD. Lo hago asi para que mientras escribo el code no sea largo, pero va a ser que no!!!

Saludos y gracias a los dos
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Trokan.c Ayuda Windows C
« Respuesta #4 en: 3 Septiembre 2010, 14:41 pm »

while (1) es un bucle infinito, mejor usar for (;; ) aunque los compiladores modernos no emitan la comparacion redundante con el 1.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
clodan

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Trokan.c Ayuda Windows C
« Respuesta #5 en: 3 Septiembre 2010, 14:48 pm »

while (1) es un bucle infinito, mejor usar for (;; ) aunque los compiladores modernos no emitan la comparacion redundante con el 1.

Lo mismo me parecio a mi, pero me dijo esto:
jjajaja yo no entiendo mucho todavia asi que lo acepte con sabiduria jejeje

Clodan, no es necesario poner nada mas que un uno porque el computer luego lo pasa a ensamblador y ahi lo que queda es hacer la operacion entre parentesis, si la hay y si el resultado es positivo, o sea, diferente de cero, hace lo que viene entre las llaves.
Hay que ver como de grande es un code con una sola instruccion WHILE!!!

Ya he visto el fallillo xD no es un puntero. Voy a provarlo ahora mismo. Muxas gracias ctlon. Eso normalmente lo hago despues, pero ya ves xD. Lo hago asi para que mientras escribo el code no sea largo, pero va a ser que no!!!

Saludos y gracias a los dos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines