Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak połączyć dwa komputery lub komputer i maszynę wirtualną

Ostatnio zmodyfikowano 2017-09-16 02:01
Autor Wiadomość
asker_qwe123
Temat założony przez niniejszego użytkownika
Jak połączyć dwa komputery lub komputer i maszynę wirtualną
» 2017-09-14 23:40:09
Mam kilka pytań związanych z tą biblioteką oraz z połączeniem dwóch komputerów. Jeśli klient nadaje na adres localhost (127.0.0.1) i serwer jest na tym samym pc to wszystko działa dobrze, serwer przesyła wiadomości pomiędzy klientami. Niestety kiedy próbuję klienta umieścić na wirtualnej maszynie (a serwer jak poprzednio na moim pc) to nie wiem jaki adres IP powinienem dać klientowi. Powinien to być adres ip4 odczytany z CMD (np. 192.168.1.101) czy może jakiś inny? Jak sprawa by wyglądała gdybym próbował połączyć dwa normalne urządzenia a nie maszynę wirtualną?

https://pastebin.com/4c6xN6C2
P-164895
pekfos
» 2017-09-14 23:47:06
Sprawa z maszyną wirtualną może wyglądać różnie, w zależności do trybu w jakim działa karta sieciowa VM. W przypadku dwóch różnych maszyn używasz adresu IP komputera z którym się łączysz. Połączenie może być blokowane przez firewall i NAT.

WinSocket
Co 'WinSocket'? Nazwij temat z jakimś sensem..
P-164896
asker_qwe123
Temat założony przez niniejszego użytkownika
» 2017-09-15 02:21:54
O maszynach poczytam bo zdaje się to być głębszym tematem. IP komputera z którym się łącze. Rozumiem że chodzi o to z CMD jeśli oba pc są w jednej sieci lokalnej? A jak bym mógł się połączyć z komputerem z poza sieci? Strony takie jak ta "http://www.moje-ip.eu/" pokazują ip ale ono jest wspólne dla wszystkich urządzeń w sieci lokalnej.
P-164902
mateczek
» 2017-09-15 08:22:21
aby zacząć dyskutować trzeba objaśnić choćby w przybliżeniu jak się sprawa ma z sieciami

1 serwer to program, który rezerwuje sobie port(właściwie socket), maszyny na której jest odpalony, do nasłuchu

2 serwer czeka na klienta i w momencie gdy klient przyjdzie tworzony jest nowy socket z losowym numerem portu i na ten nowy porty jest przeniesiona komunikacja (port do nasłuchu zostaje zwolniony).

3 podstawą do stwierdzenia czy możliwa jest komunikacja z serwerem jest możliwość puszczenia pinga do maszyny docelowej.(duże uproszczenie)

4
serwer->listen( QHostAddress::Any, 3333 )
 na tak zdefiniowany socket połączysz się każdego miejsca w sieci lokalnej. Natomiast jeśli zdefiniujesz
serwer->listen( QHostAddress::locahost, 3333 )
 tylko z maszyny na której jest uruchomiony serwer.

5 router to urządzenie, które tworzy sieć lokalną i ukrywa ją przed śwatem (NAT). (również upraszczam)

6 za routerem nie widać adresów IP maszyn w sieci lokalnej.                       (są sztuczki, które pozwalają się przebić przez nat)

7 aby przebić się przez router musisz w mu powiedzieć aby pakiety kierowane do niego przekierowywał. Taka reguła ma postać
 
adripRoutera:portRoutera kieruj na adresIPmaszynyLokalnej:portMaszynyWsieciLokalnej
  takie przekierowanie nazywa się forwardowaniem portów i jest to opcja dostępna w każdym routerze.

8 można wystawić całą maszynę z sieci lokalnej na zewnątrz i takie przekierowanie nazywa się "DMZ". Również i ta opcja jest dostępna w większości domowych routerów

9 każda maszyna z sieci lokalnej, której komunikacja ma przechodzić przez router musi mieć ustawioną bramę!!!!!

10 wszelkiego rodzaju firewalle mogą skutecznie zablokować proces połączenia się z serwerem


 

P-164904
asker_qwe123
Temat założony przez niniejszego użytkownika
» 2017-09-16 02:01:04
Dzięki za tak wyczerpującą odpowiedź! Na razie nie mam żadnych więcej pytań. Jak będę mieć dostęp do drugiego komputera to zobaczę czy potrafię zrobić tak, żeby wszystko działało.
P-164940
« 1 »
  Strona 1 z 1