Działający serwer o zewnętrznym Ip

0

Piszę w C# dwie proste aplikacje, które mają się ze sobą skomunikować po TCP/IP. Mam już komunikację lokalną, tzn. na 127.0.0.1 śmiga, ale chciałbym aby działało to przez internet. Wobec tego biorę sobie swoje ip zewnętrzne z http://checkip.dyndns.org/, stawiam na nim server, próbuję podłączyć klienta ... i na tym się kończy, bo listener klienta nie może złapać. Skąd ten problem? Jak to naprawić? Poniżej wrzucam swój kod:
Server:

Server = new TcpListener(ServerEndPoint); // Gdzie ServerEndPoint zawiera pobrane Ip zewnętrzne, które jest OK oraz port
Server.Start();

while (!Server.Pending())
{
    if (bgwClientListener.CancellationPending)
    {
        StopServer();
        bgwClientListener.CancelAsync();
    }
}
// I dotąd już nie dochodzi, cały czas łączy
lblFormTitle.Text = "Connected!";
            
Client = Server.AcceptTcpClient();

StopServer();

Klient:

lblFormTitle.Text = "Trying to connect...";

Client = new TcpClient();

Client.Connect(ServerEndPoint); // ServerEndPoint klienta zawiera to samo co ServerEndPoint serwera

// I łączy się i łączy i łączy...

lblFormTitle.Text = "Connected!";

StopClient();

Uprzedzam, że szukałem już w google i na forach i albo mam niski skill w googlingu, albo po prostu nic nie pasowało do moich potrzeb.

1

Spróbuj wyłączyć zapory systemowe/antywirusowe na komputerach lub dodać swój program do wyjątków w zaporach.

1

To nie będzie działać prawdopodobnie twój komputer nie jest widoczny w internecie a twój router tak, musiałbyś postawić tam serwer ssh u siebie klient i przeforwardować porty

2

Wot?

Jak łączysz się po TCP to określasz numer portu, prawda? IP zewnętrzny jeśli w ogóle masz, to jest on przypisany do routera, wpada pakiet do routera a on nie wie co z nim zrobić. Musisz na routerze ustawić przekierowanie tego konkretnego portu na PC na którym będzie odpalony serwer. Druga sprawa to to, ze ten PC powinien mieć stałe IP, a nie nadawane pzrez DHCP w routerze.

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