Przekazywanie danych przez internet w VB

Jak zainstaluję sobie jakiś komunikator np. Skype to on potrafi komunikować się z internetem bez względu czy mam router

czy nie. Chciałem zrobić program w VB z użyciem Winsock i najprawdopodobniej nie może on się połączyć bo mój router

bloguje port na którym nadaje program. Jak zrobić żeby program w VB mógł sam odblokowywać sobie porty?

Proszę o dokładny opis bo nie znam się tak dobrze na tym.

Po pierwsze sprecyzuj dokładnie, kto i z kim się ma łączyć (mówię o aplikacji VB).

Po drugie Skype i inne programy (np. GG) nie odblokowują sobie porów na routerze, a jedynie w systemie operacyjnym - są to porty, na których odbierają przychodzące połączenie.

Po trzecie, powyższe aplikacje bazują na jakimś publicznie dostępnym serwerze i się do niego łączą - a takie połączenia wychodzące nie są standardowo nigdzie blokowane.

Po czwarte odblokowanie przy przekierowanie portów na routerze robi się poprzez jego interfejs www, a każdy router ma go innego. Być może jest możliwość konfiguracji router poprzez telneta, ale to i tak nie rozwiązuje sprawy różnorodności takiej operacji w zależności od routera.

Aplikacje mają się wymieniać stringami. A odbiorcą danych ma być komputer którego IP się podało.

Tak właśnie myślałem że komunikatory łączą się nie bezpośrednio tylko przez jakiś serwer.

A czy dało by się tak samo zrobić jakoś z aplikacjami VB?

idź z tym na 4programmers.net i na forum tam zapytaj ludzi.

Tu już ci wyżej ktoś napisał, że komunikatory popularne, łączą się z serwerem jakimś, np. gadu gadu ma serwery swoje, z nimi każdy program gg, aqq łączy się (co zresztą widać, bo np. wyślesz kumplowi wiadomość, wyłączysz kompa, on kompa też ma wyłączonego, ale włączy go za godzinę, to odczyta twoją wiadomość gg, bo to serwer gg mu ją wyśle, on jest pośrednikiem waszym, gdyby nie istniały serwery gg, mógłbyś się tylko komunikować z kumplem wtedy kiedy macie obaj odpalone komunikatory).

O routerze też ci gość wspomniał, że wklepujesz w przeglądarce adres do panelu logowania routera np. http://192.168.0.1/ i logujesz się, szukasz zakładki port forwarding, czy jakoś podobnie i tam wklepujesz IP wewnętrzne twojego kompa i porty i gotowe.

Nie wiem, czy bez przekierowania portów mógłbyś się łączyć z każdym. Wiele lat temu w Polsce dość popularne było, że dostawcy netu oferowali łącza i każdy miał wewnętrzny adres ip w stylu 192.168.x.x i wtedy nie mogłeś np. radia internetowego otworzyć, bo ludzie ze świata nie mogli się połączyć z tobą, musiałeś latać do dostawcy internetu i prosić go, by przypisał ci publiczny adres IP i wtedy problemy znikały. Dzisiaj chyba już dostawcy netu nie dają nikomu wewnętrznego IP. Nie wiem jak jest teraz, gdy obie osoby mają routery, może przez te routery masz tak jakby wewnętrzne IP i ten problem co wiele lat temu w Polsce, stąd najlepiej przekierowywać porty na routerze co zajmuje 5 sekund i święty spokój masz (jak zakładasz serwer do gry to też porty odblokowujesz sobie na routerze).

Czy bez przekierowania portów można zrobić komunikator, tego nie wiem, nie znam się.

Wejdź na forum na 4programmers.net i tam zapytaj doświadczonych ludzi.