Czy to klient czy to serwer?

0

Mam taki problem, ponieważ nigdy nie zajmowałem się aplikacjami sieciowymi, iżdnymi które mają z tym coś wspólnego. Dlatego zadaję taki łatwe dla Was pytanie jak wykryć czy komputer na którym uruchomiono jest klientem, serwerem, czy w ogólnie nie jest podłączony do sieci.

0

Żeby wykryć serwer trzeba grać w ping-ponga. Pingujesz porty na localhoscie... 127.0.0.1 (tak komputer w sieci rozpoznaje samego siebie- ip najniższe/najbliższe/najbardziej lokalne). Lub też pingujesz przez ip otrzymane z dhcp/ustawione na sztywno (obojętnie, ale przydzielone ip trzeba najpierw skądś odczytać... więcej roboty).

// co do wykrycia klienta... Hmmm chyba troszkę trudniej... Szczerze mówiąc nie wiem... Może hook na jakieś funkcje systemowe?

0

Jezeli piszesz na gniazdkach to aplikacja musi wlaczyc sie w tryb "oczekiwania" na przylaczenie. Np. Server.Active := True;

No i w tym momencie aplikacja jest serwerem; chyba ze nie zrozumialem ;-/

0

To ja nie zrozumiałem. O co w ogóle chodzi. Jak juz pisałem nie znam się na aplikacjach sieciowych. Wiem, że Wy za tym nie przepadacie, ale może jakiś kodziak i jaki to ma byc komponencik?

0

poczytaj sobie artykuł o gniazdkach.
w skrócie to wygląda tak:

jeden programik jest serwerem (komponent server), a reszta jest klientami (client).

oba programiki muszą być na tym samym porcie. ustalasz to tak:
server.port:=1450
client.port:=1450

poza tym ustalasz IP:
server.IP:='192.168.0.1', analogicznie klienta.

i żeby sę połączyć to:
server.listen:=true
client.connection:=true

jesli nastapi polaczenie to server otrzyma komunikat w zdarzeniu OnConnection, a u klienta tez takie zdarzenie nastąpi.

PS. wszystko napisałem na podstawie komponentów TCPServer i TCPClient (ze strony torry)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.