Dobry wieczór,
piszę sobie komunikator i mam pewien problem przy połączeniu socketa klienta z socketem serwera, mianowicie:
Klient łączy się z serwerem jeżeli:
- uruchamiam klienty i serwer na jednej maszynie;
- uruchamiam klienty na wirtualnej maszynie, a serwer na fizycznym systemie, który jest hostem dla tejże wirtualki;
- uruchamiam klienty na wirtualnej maszynie i klienty na tej samej maszynie co serwer;
Klient nie łączy się jeżeli:
- uruchamiam serwer na jednej fizycznej maszynie, a klienty na innych;
I tutaj właśni jest problem, bo przy próbie połączenia się dostaję taki oto wyjątek po stronie uruchomionego klienta:
Oba sockety są asynchroniczne, na kliencie wpisany jest z palucha adres IP i port serwera. Wygląda to jakby port serwera był blokowany ale tak nie jest i wyjątek jest wyrzucany nawet przy wyłączonych firewallach. Co dziwne telnet na port serwera działa prawidłowo.
Serwer i klienta wrzucam jako załącznik. Bardzo proszę pomoc, bo nie wiem w sumie gdzie jest problem. Przecież wirtualka to tak naprawdę inny komputer więc dlaczego na fizycznych maszynach klient nie widzi serwera? Jeżeli uruchomicie sobie oba te programy (na jednym kompie albo na kompie i wirtualce) i zmienicie adres IP, do którego ma się łączyć klient (Klasa KlientTCP) na właściwy dla swoich sieci to zobaczycie, że to coś działa :D
PS: Ten kod jest jeszcze mocno roboczy i wiele rzeczy będę zmieniał więc wygląda to jak wygląda :)
Pozdrawiam
Grzesiek