Witam, próbuję połączyć ze sobą dwa komputery przy pomocy WinSock. Stworzyłem dwa programy: klient i serwer. Niestety coś źle robię bo nie mogę nawiązać połączenia. Działa tylko, gdy próbuję się połączyć ze sobą przez 127.0.0.1 lub adres lokalny. Przez adres globalny lub adres lokalny z innym komputerem już nie można. WSAGetLastError() zwraca WSAECONNREFUSED. Używam portu 27015.
Kod jest trochę długi, więc umieszczam link do archiwum z nim: http://www.mediafire.com/?5amyie9xjfb5uoc
jeśli tam gdzie odpalasz serwer nie masz globalnego adresu IP to Ci nie bedzie chodziło nawet gdybyś ze skóry wyszedł, no chyba że masz sieć domową.
Nie bardzo rozumiem. Jestem połączony z internetem, więc mam globalne IP. Sieć domową też mam, ale i tu nie mogę połączyć dwóch komputerów. Co ciekawe, przy próbie w sieci domowej raz wyskoczył mi komunikat na drugim PC z COMODO Firewall o połączeniu, ale zaakceptowanie nic nie dało.
"Jestem połączony z internetem, więc mam globalne IP" - nie do końca prawda, bo to samo IP może mieć pierdyriald innych urządzeń - wszystkie, które siedzą w tej samej sieci. Jak chcesz się łączyć z zewnątrz to potrzebujesz publiczny adres IP + ewentualnie skonfigurowane forwardowanie portów w Twojej sieci lokalnej
byku_guzio napisał(a)
Jak chcesz się łączyć z zewnątrz to potrzebujesz publiczny adres IP + ewentualnie skonfigurowane forwardowanie portów w Twojej sieci lokalnej
Ja tylko uściślę. Może lepiej zamiast "z zewnątrz" użyć "na zewnątrz", aby wiadome było, że serwer musi mieć publiczne IP lub wystawione porty, a klient nie.
Kiedy upowszechni się IPv6 (czyli za jakieś 165 lat biorąc pod uwagę obecny postęp wycofywania IPv4), wszystkie IP będą publiczne i ten problem zniknie... teoretycznie.
Czyli co mam zrobić, żeby to działało? Spróbowałem forwardować port 27015, lecz nadal nie można się połączyć. Korzystając ze strony: http://www.pcwintech.com/port_test.php port jest online, gdy mam włączony serwer, więc jest OK. Co ciekawe przy sprawdzaniu portu serwer wyłapuje połączenie, ale gdy próbuję połączyć się przez klienta to nie można.
musisz zmienić internet albo poprosić dostawce (jeśli masz radiówkę) aby zmienił Ci ip na publiczne (dodatkowe koszty do abonamentu)
Internet mam u TP, wszystko byłoby jasne, że muszę serwer uruchomić na kompie z publicznym IP, tylko, że przy sprawdzaniu portu jakoś się łączy. Nie jestem za dobrze obeznany w sieciach, więc o co chodzi?