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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Imperfeccion en la transmisión con sockets de flujo.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Imperfeccion en la transmisión con sockets de flujo.  (Leído 4,875 veces)
lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: Imperfeccion en la transmisión con sockets de flujo.
« Respuesta #10 en: 4 Enero 2011, 23:28 pm »

Bueno. Ya que nadie entiende lo que se pregunta lo voy a repetir de otra manera.
Segun wikipedia:
Citar
TCP
El protocolo garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron.
Lo que significa que si envió los datos por TCP tienen que llegar seguro correctamente.
Como dice esta pagina(http://www.fismat.umich.mx/mn1/manual/node24.html):
Citar
Socket de flujo
da un flujo de datos de dos vías, confiable, y sin duplicados sin límites de grabación. El flujo opera en forma parecida a una conversación telefónica. El tipo del socket es SOCK_STREAM, el cual en el dominio de Internet usa TCP (Transmission Control Protocol).
SOCK_STREAM usa el protocolo TCP lo que significa que la cadena "hola" tiene que llegar por cojones al ordenador opuesto(de hecho en ocasiones si que llega).
Mi pregunta es: ¿Por que demonios no llega?¿Se debe a la recepción?¿Wikipedia miente?¿Hay interferencias?¿los extraterrestres están jodiéndome manipulando los datos?
XD espero que ahora se entienda mejor

PD: gracias por el link Sagrini pero no se a que viene eso.


« Última modificación: 4 Enero 2011, 23:31 pm por tuket » En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: Imperfeccion en la transmisión con sockets de flujo.
« Respuesta #11 en: 5 Enero 2011, 00:05 am »

tuket, el protocolo TCP/IP no falla. Lo que falla son los programas, o el cliente o el servidor.

Saludos.


En línea

lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: Imperfeccion en la transmisión con sockets de flujo.
« Respuesta #12 en: 5 Enero 2011, 00:10 am »

Es bueno saberlo  :)
En línea

ukol

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: Imperfeccion en la transmisión con sockets de flujo.
« Respuesta #13 en: 5 Enero 2011, 18:07 pm »

Te faltó cerrar el socket(closesocket/shutdown en wsock) quizá sea eso(código 1).
http://msdn.microsoft.com/en-us/library/bb530744%28v=VS.85%29.aspx

Edito: Por cierto, en el segundo código no miras si da error, si devuelve -1 miras el errno con strerror(errno) y te hubiera dado mas información de lo que pasa. Que lo sepas pa la próxima, en windows no se como se hace pero seguro hay forma.
« Última modificación: 5 Enero 2011, 18:19 pm por ukol » En línea

lapras

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: Imperfeccion en la transmisión con sockets de flujo.
« Respuesta #14 en: 5 Enero 2011, 19:43 pm »

Nada ya esta solucionado dejo el código cambiado por si a alguien le interesa:
Código
  1. #include<windows.h>
  2. #include<iostream>
  3. #include<string.h>
  4. #include<stdio.h>
  5. #include<sys/types.h>
  6. #include<winsock.h>
  7. #include<conio.h>
  8.  
  9. int main(){
  10.    {
  11.        WSADATA wsaData;   /* Si esto no funciona */
  12.        //WSAData wsaData; /* prueba esto en su lugar */
  13.  
  14.        if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0)  
  15.        {
  16.            fprintf(stderr, "WSAStartup failed.\n");
  17.            exit(1);
  18.        }  
  19.    }
  20.    ///////////////////////////////////////////////////////////////////
  21.  
  22.  
  23.  
  24.  
  25.    struct sockaddr_in my_addr, they_addr;
  26.    SOCKET sockfd, newfd;
  27.    sockfd=socket(AF_INET,SOCK_STREAM,0);
  28.    if(sockfd==-1){
  29.           printf("error en socket");
  30.           std::cin.get();
  31.           exit(-1);
  32.           }
  33.  
  34.    my_addr.sin_family = AF_INET;        
  35.    my_addr.sin_port = htons(54336);      
  36.  
  37.    if(my_addr.sin_addr.s_addr = htonl(INADDR_ANY)==-1){
  38.            printf("error en ip\n");
  39.            std::cin.get();
  40.            exit(-1);
  41.            }
  42.    memset(&(my_addr.sin_zero), '\0', 8);
  43.  
  44.    if(bind(sockfd, (struct sockaddr *)&my_addr,  sizeof(struct sockaddr))==-1){
  45.        printf("error en bind()");
  46.        std::cout<<WSAGetLastError()<<std::endl;
  47.        std::cin.get();
  48.        exit(-1);
  49.    }
  50.    if(listen(sockfd, 10)==-1){
  51.        printf("error en listen()");
  52.        getch();
  53.        exit(-1);
  54.    }
  55.    int bytes_sent;
  56.    int size_sockaddr=sizeof(sockaddr);
  57.    while(1){
  58.    newfd=accept(sockfd,(struct sockaddr *)&they_addr, &size_sockaddr);
  59.  
  60.    //send(newfd, "hola", 5, 0);
  61.    bytes_sent=send(newfd, "mola", 5, 0);
  62.    closesocket(newfd);
  63.    }                        
  64.    WSACleanup();
  65.    printf("todo en orden\n");
  66.    getchar();
  67. }
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda - velocidad de transmision
Multimedia
no_manzana 2 1,767 Último mensaje 17 Julio 2006, 00:31 am
por no_manzana
Transmision de archivos FLV por internet
Multimedia
johnwmartinez 1 2,771 Último mensaje 13 Noviembre 2008, 15:05 pm
por johnwmartinez
Potencia de transmision?
Materiales y equipos
Hacker wifi 4 6,789 Último mensaje 23 Julio 2010, 11:40 am
por Hacker wifi
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines