aplikacja klient - serwer

0

Czesc.
Mam problem z aplikacją typu klient - serwer .
Do przesylania danych korzystam z protokołu udp, tworze w Qt.
I teraz tak chciałbym , aby klient wysyłał dane do serwera , serwer to przetwarzał i odsyłał odpowiedz.
Problemu nie ma kiedy testuje to na jednym komputerze i korzystam z metody

udpSocket->writeDatagram(id.data(), id.size(),QHostAddress::Broadcast, 45454);

do komunikacji miedzy programami. Problemu nie ma , jesli testuje aplikacje na jednym komputerze,
problem mam z wysłaniem datagramu gdy nie korzystam z QHostAddress::Broadcast, tylko gdy chce przesłac datagram na zewnętrzny IP. I tak tworze sobie:

QHostAddress klient("84.132.144.223"); 

powyżej jest moje zew. IP.
i wsadzam do metody :

udpSocket->writeDatagram(id.data(), id.size(),klient, 45454);

i w ten sposób nie działa, a chodzi własnie o to, żeby wysyłać wiadomości na inne komputery w intenecie.
Ogólnie pierwszy raz tworzę aplikacje klient - serwer i wpadłem na taki pomysł komunikacji że:
klient wysyła do serwera jakies dane plus swoje zewnetrzne ip , serwer przetwarza to i odsyła na IP , jaki otrzymał w datagramie. Nie wiem czy to dobre rozwiązania, wolałbym coś w stylu: klient nawiązuje połączenie, serwer akceptuje i "trzyma" klienta przy sobie, po przetworzeniu informacji przekazuje mu dane i "puszcza" klienta.
Jednak priorytetowy problem to ten który opisałem jako pierwszy, czyli ze klient nie może wysłać
danych na zewnętrzny adres IP.
Aha i jesli to jest istotne to jestem za routerem-switchem.
Czekam na rozwiązania.
Dziękuje

0

aktualizacja:
aplikacja działa jesli probowałem przesłać wiadomość do kolegi ktory ma zewnętrzne i stałe ip, natomiast nie działa jesli on chce wysłać do mnie , ja mam wewnętrzne ip, za routerem switchem.
Jak to rozwiązać ?

0

myslij mu mailem, bedzie latwiej... ;) lub popatrz tutaj <url>www.codeproject.com/KB/MFC/SimpleUDP.aspx</url>

0

Fakt. Mailem będzie szybciej. Mozna też na routerze odblokowąć porty.

1 użytkowników online, w tym zalogowanych: 0, gości: 1