Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Sockets: accept==SOCKET_ERROR

Estas en el tema de Sockets: accept==SOCKET_ERROR en el foro de C/C++ en Foros del Web. Buenas, lo que quiero hacer es enviar mensajes por sockets(socket cliente) y recibirlos por otro socket(socket servidor)... Pero no me devuelve bien el accept, me ...
  #1 (permalink)  
Antiguo 17/03/2010, 22:41
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Sockets: accept==SOCKET_ERROR

Buenas, lo que quiero hacer es enviar mensajes por sockets(socket cliente) y recibirlos por otro socket(socket servidor)...
Pero no me devuelve bien el accept, me devuelve SOCKET_ERROR por toda la eternidad
Anda todo PERFECTO excepto el ACCEPT, tal vez este poniendo mal algun dato como IP o puerto, si me pueden dar una mano agradeceria

vars...
Código C++:
Ver original
  1. SOCKET serverSocket, serverBackup;
  2. SOCKET acceptSocket;
  3. SOCKET clientSocket;
  4.  
  5. WSADATA socketData;
  6. sockaddr_in hostAddress;
  7. sockaddr_in clientAddress;
  8. sockaddr_in serverAddress;
  9.  
  10. char* hipAddress="0.0.0.0";
  11. char* ipAddress="127.0.0.1";
  12. int port=100;
  13.    
  14. hostAddress.sin_family=domain;
  15. hostAddress.sin_addr.s_addr=inet_addr(hipAddress);
  16. hostAddress.sin_port=htons(port);
  17.  
  18. clientAddress.sin_family=domain;
  19. clientAddress.sin_addr.s_addr=inet_addr(ipAddress);
  20. clientAddress.sin_port=htons(port);
  21. serverAddress=clientAddress;

execution..
Código C++:
Ver original
  1. iniSock(serverSocket);
  2.  
  3. Bind(serverSocket, &hostAddress); // anda bien
  4. Listen(serverSocket); // anda bien
  5.    
  6. serverBackup=serverSocket;
  7. Accept(serverSocket, &clientAddress); // anda mal -_-

function..
Código C++:
Ver original
  1. void Accept(SOCKET& sock, sockaddr_in* Address)
  2. {
  3.     cout << endl << "Accepting.." << endl;
  4.    
  5.     acceptSocket=accept(serverBackup, (SOCKADDR*)Address, (int*)sizeof(*Address));
  6.     //acceptSocket=accept(sock, NULL, NULL);
  7.     while(acceptSocket==SOCKET_ERROR)
  8.     {
  9.         acceptSocket=accept(serverBackup, (SOCKADDR*)Address, (int*)sizeof(*Address));
  10.         //acceptSocket=accept(sock, NULL, NULL);
  11.     } // este bucle es eterno :(
  12.    
  13.     sock=acceptSocket;
  14.     cout << "Accepted!!" << endl << endl;
  15. }

saludos!!

Etiquetas: sockets
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:26.