2012-05-29 17 views
5

Napisałem wielowarstwowy pakiet aplikacji w Delphi XE, używając DataSnap (aplikacja VCL).Łączność TCP/IP za pośrednictwem DataSnap

To będzie używane wewnętrznie, w mojej firmie, głównie w celu zastąpienia przestarzałej komunikacji faksu.

Wszystko działa dobrze, ale natrafiłem na nieprzyjemną sytuację: maszyna serwerowa znajduje się za routerem, więc ma wewnętrzny adres IP sieci. Przekazałem (w routerze) wszystkie przychodzące połączenia na porcie 211 (domyślne ustawienia DataSnap) do wewnętrznego adresu IP serwera, a około 8 razy na dziesięć wszystkich klientów łączy się z serwerem bez żadnych problemów.

Problem polega na tym, że dla pozostałych 2 razy otrzymuję różnego rodzaju błędy połączenia (przeważnie przekroczono limit czasu połączenia). Kiedy to robi, muszę zamknąć i ponownie otworzyć aplikację serwera (niektóre) klientów, a następnie działa.

W tej chwili wciąż jestem w fazie projektowania, więc to tylko kłopot, ale kiedy to robię, nie chcę nikomu mówić, żeby NIE zamknęło aplikacji (po uruchomieniu działa, żadnych więcej problemów), zamknij i ponownie otwórz aplikacje za każdym razem, gdy wystąpi problem z połączeniem.

Jak mogę wyeliminować ten problem?

Miałem (tylko) spojrzenie na NetCat i SoCat, ale (dla mnie) wydaje się to przesadą w tej sytuacji. Czy istnieje inny sposób rozwiązania tego problemu?

+2

Gdy masz problemy, czy sprawdziłeś logi routera, aby zobaczyć, co to może być? –

+0

Nie przyszło mi do tej pory. Zrobię to teraz i opublikuję wyniki. Dziękuję Ci. – cipnec

+0

Jeszcze raz dziękuję Joachim. Całkiem głupio, że nie sprawdzam dziennika routera. Tak czy inaczej, problem tkwił w tym, ponieważ wewnętrzna zapora routera czasami blokowała moje aplikacje. Problem rozwiązany! – cipnec

Odpowiedz

2

Rozwiązaniem było wyłączenie wewnętrznej zapory routera.

Powiązane problemy