C/Visual C - ayuda Programa no responde al utilizar winsock2.h

 
Vista:

ayuda Programa no responde al utilizar winsock2.h

Publicado por JuanM27 (1 intervención) el 10/03/2014 21:19:26
Hola buenos dias, estoy tratando de hacer un programa server sencillo que solo envia un texto al programa cliente cuando se conecta y nada mas.
el problema que tengo es que use un codigo que encontre en una web sobre el uso del winsock, lo hice en una aplicacion vacia en visual studio 2010 c++ y funciona bien, pero cuando lo intente poner el mismo codigo a un proyecto de aplicacion windows, cuando hago la llamada para crear el WSAStartup y aceptar las conecciones el programa me dice "No Responde" en el administrador de tarea.

Dejo el codigo aver si alguien me puede ayudar a solucionar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using namespace std;
int Port = 1234;
 
void Conexion()
{
 
      int respuesta;
        WSAData wsaData;
        WORD DLLVERSION;
        DLLVERSION = MAKEWORD(2,1);
 
        respuesta = WSAStartup(DLLVERSION, &wsaData);
		struct sockaddr_in local,client;
 
        SOCKADDR_IN addr;
        int addrlen = sizeof(addr);
        SOCKET sListen;
        SOCKET sConnect;
 
        sConnect = socket(AF_INET,SOCK_STREAM,NULL);
        addr.sin_addr.s_addr = htonl(INADDR_ANY); //inet_addr("127.0.0.1");
        addr.sin_family = AF_INET;
        addr.sin_port = htons(Port);//8081
 
		sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
       bind(sListen, (SOCKADDR*) &addr, sizeof(addr));
        listen(sListen, 50);
		LogAddFuncColor(4,"Puerto en escucha: 35864 TPC");
 
 
 
 
     for(;;){
 
 
              if(sConnect = accept(sListen,(SOCKADDR*)&addr,&addrlen))
                {
 
					char ForKey[9];
				GetPrivateProfileStringA("Main","IsKey","12345678",ForKey,9,PATH_CONFIG);
                   respuesta = send(sConnect,ForKey,100,NULL);
                    respuesta = recv(sConnect,ForKey,sizeof(ForKey),NULL);
 
                }
 
 
 
 
 
     }
 
 
	  // WSACleanup();
 
 
 
}

Por las pruebas que fui haciendo el problema esta en esta parte del codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for(;;){
 
 
              if(sConnect = accept(sListen,(SOCKADDR*)&addr,&addrlen))
                {
 
				char ForKey[9];
				GetPrivateProfileStringA("Main","IsKey","12345678",ForKey,9,PATH_CONFIG);
                   respuesta = send(sConnect,ForKey,100,NULL);
                    respuesta = recv(sConnect,ForKey,sizeof(ForKey),NULL);
 
               }
 
 
 
 
 
     }

Lo estoy haciendo en Visual Studio 2010 C+.
Nota este codigo en consola anda bien, el problema esta cuando lo quiero pasar a Aplicacion Win32.

saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

ayuda Programa no responde al utilizar winsock2.h

Publicado por JuanC (35 intervenciones) el 10/03/2014 23:55:34
en qué momento sale del bucle infinito for(;;) ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar