Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: d00ze13 en 14 Noviembre 2011, 19:02 pm



Título: Sockets - linux - recibir datos
Publicado por: d00ze13 en 14 Noviembre 2011, 19:02 pm
Hola buenas! tengo hecho un servidor con sockets en el cual recibo texto del cliente, pero solo me deja mandar un texto, si sigo mandando mas texto desde el cliente ya no me llegan los datos.
Os dejo el codigo del servidor a ver si encontrais algo raro.

Código
  1. #include <netinet/in.h>
  2. #include <sys/socket.h>
  3. #include <sys/types.h>
  4. #include <iostream>
  5. using namespace std;
  6. int main(){
  7.  
  8.        int sockfd, new_sock,numbytes,sin_size;
  9.        char text[1024];
  10.  
  11.        struct sockaddr_in servidor={AF_INET,htons(1234),INADDR_ANY};
  12.        struct sockaddr_in cliente;
  13.  
  14.        sockfd=socket(AF_INET,SOCK_STREAM,0);
  15.        bind(sockfd,(struct sockaddr *)&servidor,sizeof(struct sockaddr));
  16.        listen(sockfd,5);
  17.  
  18.        while(1){
  19.                sin_size=sizeof(struct sockaddr_in);
  20.                if((new_sock=accept(sockfd,(struct sockaddr *)&cliente,(socklen_t*)&sin_size))==-1){
  21.                        cout<<"Error de conexion"<<endl;
  22.                        return -1;
  23.                }
  24.  
  25.  
  26.                numbytes=recv(new_sock,text,1024,0);
  27.                text[numbytes]='\0';
  28.  
  29.                cout<<text<<endl;
  30.  
  31.                close(new_sock);
  32.        }
  33. }
  34.  
  35.