IIC2233-2016-02 / Syllabus

Repositorio principal del curso
29 stars 25 forks source link

Problema al conectar con otro computador #568

Closed abannura closed 7 years ago

abannura commented 7 years ago

Estaba intentando conectarme con otro computador pero me tira el siguiente error:

TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

Lo busque en internet pero no entendi bien a que se atribuia. Osea, claramente es pq hubo un time out, mi duda es porque se produciria el time out? Copie y pegue los codigos de los apuntes en los computadores distintos. Alguna idea? Gracias!

EXTRA: no entiendo bien como funciona el tema de poner "" al host, si alguien podria explicarlo seria buenisimo. Muchas gracias!

aaossa commented 7 years ago

Hola, el TimeoutError se da porque no se pudo conectar correctamente (es lo que dice el mismo mensaje de error), pero es por configuraciones de la red y del equipo mas que algo de Python. Desconozco si alguna forma de arreglarlo solo desde Python, no he hecho algo con esto, pero sospecho que se puede. Si te diera el mismo error trabajando localmente (con esto me refiero a dentro de un equipo) habría que entrar a revisar en más profundidad.


Sobre "" para el host. Nuevamente, la respuesta está en los docs:

For IPv4 addresses, two special forms are accepted instead of a host address: the empty string represents INADDR_ANY, and the string '' represents INADDR_BROADCAST. This behavior is not compatible with IPv6, therefore, you may want to avoid these if you intend to support IPv6 with your Python programs.

¿Qué es INADDR_ANY? Se usa cuando no te interesa usar una IP especifica, entonces se hace el binding a todas las IPs del equipo. [Mas en StackOverflow]

abannura commented 7 years ago

1) No me da problemas para conectarme internamente, y segun estube leyendo puede ser por temas de firewall. Tendre que revisar con mas detalle mas adelante cuando intente conectarme para la tarea.

2) Vi un post parecido, pero yo tenia entendido que la IP era unica para un computador, entonces no entendia. Si tiene mas de un IP entonces un computador puede funcionar como varios servidores?

fgvenegas commented 7 years ago

Hola, con cual IP estás intentando conectarte al otro computador ? Ojo que necesitas trabajar con la IP del computador que vaya a actuar de servidor (en cliente y servidor) (en la terminal pones ipconfig y aparece) Avisa si te funciona con eso Saludos !

fgvenegas commented 7 years ago

Lo otro que podría ser, es que el firewall bloquee la conexión pero ahí más detalles de eso no se

aaossa commented 7 years ago

@abannura si ejecutas tu tarea, tanto cliente como servidor, desde el mismo equipo no deberías tener problemas, por lo que el TimeoutError no debería aparecer.

La IP es única para cada dispositivo en una red, esa es la definición en el protocolo. En teoría puedes tener más de un dispositivo en tu equipo conectado a internet. Por ejemplo, si me conecto vía WiFi se me asigna una IP y si además me conecto por cable Ethernet se me asigna otra IP extra (lo acabo de hacer :grin:)

Mas sobre tu punto 2): Puedes tener varios servidores ("sockets servidores") en una misma IP, nuevamente te pido que revises la ayudantía. Estos sockets "se colocan" en un port definido, no en toda la IP.