Witam,
Mam pewien problem ze stworzeniem programu w labview 7.0.
Chodzi o to że chcialbym zrobić prostą symulacje sieci opartą na TCP/IP. Jako że moduły TCP są dostępne w standardzie to nie ma z tym problemów. Ale chodzi to że program który "ustawia" polaczenie TCP ustawia je po porcie a nie po adresie IP. polaczenie po IP ustawia tylko "klient" który chce nawiązać połączenie.
Chodzi mi o to że chce stworzyć prostą sieć gdzie będą dwa "komputery" z różnymi adresami IP i jeden serwer. Ma zachodzić wymiana dwu kierunkowa danych.
Czy da się to zrobic w LABview? Siedzie trochę nad tym i jakoś nie widzę rozwiązania.
Za pomoc dzięki:)
Symulacja sieci TCP/IP
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: Symulacja sieci TCP/IP
Między każdym z klientów, a serwerem czy między klientami?Ma zachodzić wymiana dwu kierunkowa danych.
Jasne. Na razie nie mam możliwości wrzucenia przykładu więc rzucę tylko hasłami na serwerze klocek TCP Listen, w klientach TCP Open. Wieczorem postaram się rozwinąć temat.Czy da się to zrobic w LABview?
Pozdrawiam ]
Re: Symulacja sieci TCP/IP
Chodzi o to żeby były 3 różne VI. Komunikacja może zachodzić tylko komputer <-> serwer nie musi być k.omputer - komputer.
Chciałbym serwerowi nadać to np IP 192.168.0.1 a pozostałym dwóm komputerą kolejne IP.
Proste połącznie z serwera z komupetem wychodzi. Ale już z dwoma pojawiają się problemy a żeby dodać to IP to kombinując kilka godzin wyjść mi nie chciało.
Będę wdzięczny za pomoc.
Chciałbym serwerowi nadać to np IP 192.168.0.1 a pozostałym dwóm komputerą kolejne IP.
Proste połącznie z serwera z komupetem wychodzi. Ale już z dwoma pojawiają się problemy a żeby dodać to IP to kombinując kilka godzin wyjść mi nie chciało.
Będę wdzięczny za pomoc.
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: Symulacja sieci TCP/IP
Ok, zgodnie z obietnicą...
Serwer: Górna pętla czeka nasłuchując połączenia na podanym porcie i gdy takowe "usłyszy" dodaje je do tablicy connections.
Dolna pętla co sekundę wysyła do wszystkich klientów aktualny czas i datę (w końcu jest data in, co nie? )
Klient: Tu sprawa prostsza: Otwierane jest połączenie do serwera. Ponieważ adres nie jest podany otwierane jest połączenie "do siebie" co daje efekt taki sam jak wpisanie tam swojego adresu IP. Po otworzeniu połączenia klocek TCP Read czeka na dane i jak je otrzyma, wrzuca do kontrolki data out.
W załączniku znajdziesz VI dla serwera i dwóch klientów (identyczny dla obydwu, możesz sobie skopiować go ile razy chcesz i uruchomić każdy z osobna). Oczywiście najpierw odpal najpierw serwer, a potem klientów. (Niestety nie posiadam LV 7.0, ale myślę, że dasz radę to sobie odtworzyć z obrazków).
To nie jest dobra architektura dla tego typu programu. Zrobiłem w ten sposób, żeby zwrócić uwagę na to jak zbierać listę połączeń nie komplikując zbytnio. To jak to ładnie opakować to ewentualnie w kolejnym odcinku.
Pozdrawiam
Serwer: Górna pętla czeka nasłuchując połączenia na podanym porcie i gdy takowe "usłyszy" dodaje je do tablicy connections.
Dolna pętla co sekundę wysyła do wszystkich klientów aktualny czas i datę (w końcu jest data in, co nie? )
Klient: Tu sprawa prostsza: Otwierane jest połączenie do serwera. Ponieważ adres nie jest podany otwierane jest połączenie "do siebie" co daje efekt taki sam jak wpisanie tam swojego adresu IP. Po otworzeniu połączenia klocek TCP Read czeka na dane i jak je otrzyma, wrzuca do kontrolki data out.
W załączniku znajdziesz VI dla serwera i dwóch klientów (identyczny dla obydwu, możesz sobie skopiować go ile razy chcesz i uruchomić każdy z osobna). Oczywiście najpierw odpal najpierw serwer, a potem klientów. (Niestety nie posiadam LV 7.0, ale myślę, że dasz radę to sobie odtworzyć z obrazków).
To nie jest dobra architektura dla tego typu programu. Zrobiłem w ten sposób, żeby zwrócić uwagę na to jak zbierać listę połączeń nie komplikując zbytnio. To jak to ładnie opakować to ewentualnie w kolejnym odcinku.
Pozdrawiam
Ostatnio zmieniony 14 lip 2009 09:54 przez jogurt_owocowy, łącznie zmieniany 2 razy.
Re: Symulacja sieci TCP/IP
Kurcze o tą pierwszą pętle się Polska biła:)
Wielkie dzięki ja już takie rozwiązania wymyślałem że głowa boli a tu taka prosta pętelka.
Pozdrawiam
Wielkie dzięki ja już takie rozwiązania wymyślałem że głowa boli a tu taka prosta pętelka.
Pozdrawiam
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: Symulacja sieci TCP/IP
Pętelka rzeczywiście jest prosta, ale żeby to jako tako działało to trzeba dodać jeszcze kilka rzeczy. W pierwszej kolejności należy dołożyć usuwanie z tablicy connections połączeń zamkniętych przez klientów (wykorzystując wyjście error klocka TCP Write na serwerze).
Pozdrawiam ]
Pozdrawiam ]