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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  SOCKET:Se me tilda la ventana.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: SOCKET:Se me tilda la ventana.  (Leído 3,462 veces)
Destro-

Desconectado Desconectado

Mensajes: 66


www.onlyarg.com.ar


Ver Perfil WWW
SOCKET:Se me tilda la ventana.
« en: 24 Enero 2011, 19:00 pm »

Holas :).
Tengo un problemita,cuando pongo el socket a la escucha se me tilda la ventana asta q no resiva paquetes :S.Me dan alguna idea de como puedo solucionarlo xD.
Grax  ;D.


En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: SOCKET:Se me tilda la ventana.
« Respuesta #1 en: 24 Enero 2011, 19:21 pm »

Pon el código para que podamos ver que haces.


En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


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


Ver Perfil WWW
Re: SOCKET:Se me tilda la ventana.
« Respuesta #2 en: 24 Enero 2011, 19:44 pm »

http://foro.elhacker.net/programacion_cc/tutorial_introducion_a_los_sockets_en_ansi_c_by_sagrini_2010-t317054.0.html
http://foro.elhacker.net/programacion_cc/recopilatorio_temas_importantes_de_programacion_cc-t174285.0.html
http://foro.elhacker.net/programacion_cc/recopilatorio_sources_interesantes-t298479.0.html

Pon el code, anda...
Kasiko eso a mi me lo dijeron como offtopic y falta leve, a ver si te lo ve algun mod jeje ten cuidado...
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
Destro-

Desconectado Desconectado

Mensajes: 66


www.onlyarg.com.ar


Ver Perfil WWW
Re: SOCKET:Se me tilda la ventana.
« Respuesta #3 en: 24 Enero 2011, 21:50 pm »

Grax,pero el problema no esta en el socket,we si pero es porq hace una especie de loop infinito asta resiva paquetes :S.

pd:es una ventana GUI.

int resivir()
{
     
WSADATA wsa;
     
SOCKET sock;
     
struct sockaddr_in local;
     
int len=0;
     
char Buffer[1024];

     
WSAStartup(MAKEWORD(2,0),&wsa);
   
     
sock=socket(AF_INETSOCK_STREAM0);

     
local.sin_family AF_INET;
     
local.sin_addr.s_addr INADDR_ANY;
     
local.sin_port htons(1616);

     if (
bind(sock, (SOCKADDR*) &localsizeof(local))==-1)
     {
         return -
1;
     }

     if (
listen(sock,1)==-1)
     {
         return -
1;
     }
     
len=sizeof(struct sockaddr);


     
sock=accept(sock,(sockaddr*)&local,&len);//cuando llega aca es donde se tilda :S

     
while(len!=0
     {
         
len=recv(sock,Buffer,1023,0); 

         if (
len>0
         {
               
Buffer[len]=0;
               
//code...
          
}
     }
}
En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


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


Ver Perfil WWW
Re: SOCKET:Se me tilda la ventana.
« Respuesta #4 en: 25 Enero 2011, 18:37 pm »

Código
  1. #include <winsock2.h>
  2. int main ()
  3. {
  4.     WSADATA wsa;
  5.     SOCKET sock;
  6.     struct sockaddr_in local;
  7.     int len=0;
  8.     char Buffer[1024];
  9.  
  10.     WSAStartup(MAKEWORD(2,0),&wsa);
  11.  
  12.     sock=socket(AF_INET, SOCK_STREAM, 0);
  13.  
  14.     local.sin_family = AF_INET;
  15.     local.sin_addr.s_addr = INADDR_ANY;
  16.     local.sin_port = htons(1616);
  17.  
  18.     if (bind(sock, (SOCKADDR*) &local, sizeof(local))==-1)
  19.     {
  20.         return -1;
  21.     }
  22.  
  23.     if (listen(sock,1)==-1)
  24.     {
  25.         return -1;
  26.     }
  27.     len=sizeof(struct sockaddr);
  28.  
  29.  
  30.     sock=accept(sock,(sockaddr*)&local,&len);//cuando llega aca es donde se tilda :S
  31.  
  32.     while(len!=0)
  33.     {
  34.         len=recv(sock,Buffer,1023,0);
  35.  
  36.         if (len>0)
  37.         {
  38.               Buffer[len]=0;
  39.               //code...
  40.          }
  41.     }
  42. }
  43.  

Vale, no entiendo que quieres decir con "se tilda". Se queda en un bucle infinito? Si es eso lo que pasa es que cuando tu cliente se desconecta no manda nada. Yo lo que hago es
Código:
         if (len>2) 
         {
               Buffer[len]=0;
               //code...
          }
\r\n == Enter en clientes...

Si te has programado tu el cliente, pon el code tmb. Si no, di cual usas...
Para el NC eso asi va bien... cuando el cliente meta un Enter sales del bucle
Y otra cosa, lo de Buffer [len]=0; no tiene ningún sentido. Para que es? Si es para acabar la cadena se suele poner \0. Pero recuerda lo de \r\n

Si no es, explicanos tu problema...
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
Destro-

Desconectado Desconectado

Mensajes: 66


www.onlyarg.com.ar


Ver Perfil WWW
Re: SOCKET:Se me tilda la ventana.
« Respuesta #5 en: 25 Enero 2011, 22:29 pm »

Grax,pero no es el while,es:
Código:
sock=accept(sock,(sockaddr*)&local,&len);
:S,

pd:cuando digo q se tilda es como un bucle infinito,tengo q cerrarlo con el aministrador de tareas :S.
En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


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


Ver Perfil WWW
Re: SOCKET:Se me tilda la ventana.
« Respuesta #6 en: 26 Enero 2011, 18:32 pm »

Te has leido lo que te dije? Vamos a ver, en el tuto pongo muy claro que accept deja el programa en pausa hasta que se conecta alguien. Haz un nc -vv localhost 31337 (o tu puerto) y sigues...
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
Destro-

Desconectado Desconectado

Mensajes: 66


www.onlyarg.com.ar


Ver Perfil WWW
Re: SOCKET:Se me tilda la ventana.
« Respuesta #7 en: 26 Enero 2011, 19:39 pm »

No lo avia leido  :-[.
mmm,no hay otra forma?,
En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


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


Ver Perfil WWW
Re: SOCKET:Se me tilda la ventana.
« Respuesta #8 en: 26 Enero 2011, 20:42 pm »

Si que la hay. Podrias probar a usar telnet o puedes descargar un code del foro.
Si usas Win Vista / 7 tienes que activar el telnet.
http://www.google.es/#sclient=psy&hl=es&q=activar+telnet+en+windows+7&aq=4&aqi=g5&aql=&oq=&pbx=1&fp=ae772f8ffcd452a1
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
Destro-

Desconectado Desconectado

Mensajes: 66


www.onlyarg.com.ar


Ver Perfil WWW
Re: SOCKET:Se me tilda la ventana.
« Respuesta #9 en: 26 Enero 2011, 23:43 pm »

mmm,ahora me pongo a ver eso.Otra cosa que se me courrio es de crear otro proseso.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PC se tilda
Dudas Generales
Rafael admin 2 2,861 Último mensaje 24 Agosto 2010, 22:58 pm
por maxx93
PC se tilda..
Hardware
P4nd3m0n1um 5 3,688 Último mensaje 18 Abril 2012, 03:49 am
por Aprendiz-Oscuro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines