Napisałem 2 programy w Pythonie 2.7. Jeden tworzy gniazdo hosta, a drugi tworzy gniazdo klienta. Następnie próbują się połączyć. Miałem program hosta na moim komputerze i umieściłem program klienta w telefonie, który był połączony z siecią WIFI w tej samej sieci, co mój komputer. Ustawiłem program klienta (w moim telefonie, który jest w mojej sieci LAN), aby połączyć się z lokalnym adresem IP mojego komputera. Sprawdziłem błędy w moim kodzie i okazało się, że jest bezbłędny. Jednak kiedy próbowałem go uruchomić, otrzymałem bardzo dziwne zachowanie:
- Port jest poprawny. Nazwa hosta jest poprawna. Próbuję się połączyć. Nic się nie dzieje. Nie nawiązano połączenia.
- Zresetowałem komputer.
- Próbuję jeszcze raz. Ten sam wynik.
- Wyłączam zarówno moją lokalną, jak i publiczną zaporę.
- Teraz coś dostaję, ale tylko na moim urządzeniu klienckim: [Errno 111] Połączenie odrzucone.
- Włączam ponownie zapory ogniowe.
- Taki sam wynik jak w 1. (brak połączenia)
- Uruchomię program hosta na moim laptopie. Próbuję się połączyć. To działa!
- Zresetowałem router i ponownie uruchomiłem program hosta na komputerze. Taki sam wynik jak w 1.
- Teraz uruchamiam program klienta również na moim komputerze, podłączając go do „localhost”. To działa.
Robię to samo, co w przypadku 10. ustawienia programu klienta, aby ponownie łączył się z lokalnym adresem IP mojego komputera. Błąd:
Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> s.connect(cn) File "C:\Python27\lib\socket.py", line 224, in meth return getattr(self._sock,name)(*args) error: [Errno 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
W 6. Doszedłem do wniosku, że problem jest związany z komputerem i że moje programy działają poprawnie.
Niektóre intele:
- Windows 7 na PC i laptopie.
- Używam Pythona 2.7.
- Laptop i smartfon są podłączone do sieci za pośrednictwem WIFI, komputera za pomocą kabla.
- Próbowałem różnych portów, aby upewnić się, że nie stanowią problemu.
prawdopodobnie nie tak istotne, ale tutaj jest kod dla hosta i klienta http://pastebin.com/raw/wswMi5SV
Co się dzieje?