🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #60460

Re: serwer i klient (programowanie gniazd)

#60460
From: Krzysztof Rudnik
Date: Tue, 15 Nov 2005 07:21
49 lines
2585 bytes
kreska wrote:

> Witam.
> Mam problem z napisaniem programow, z ktorych jeden ma byc serwerem tcp a
> drugi klientem, ktory sie z nim laczy. Udalo mi sie napisac klienta ktory
> sie laczy z serwerem na adresie "127.0.0.1" przez port 555, ale po

Zeby postawic serwer na porcie < 1024 trzeba byc rootem - 
troche niebezpieczne na zabawy.

> pierwsze programy dzialaja tylko uruchamiane na jednym komputerze, nie
> wiem co zrobic zeby dzialaly na dwoch roznych (jak zmieniam adres to pisze
> ze zly adres
> :( ), a po drugie czesto gdy uruchamiam serwer po raz drugi pisze mi
> komuniakt, ze adres jest zajety (po jakims czasie dziala znow dobrze).

To jest normalne - oprogramowanie sieciowe przez jakis czas trzyma jeszcze
otwarte gniazdko, by ewentualne 'zablakane, stare pakiety' byly 
ladnie pomijane i nie wplynely do ewentualnego nowo utworzonego
gniazdka.

> Generlanie czy ktos moglby mi podpowiedziec konkretnie skad mam wziac
> wartosc adresu i jaki port wybrac (czy to ma znaczenie?).

Proponuje port powyzej 1024. A szczegoly - plik /etc/services zawiera
liste portow uzywanych przez rozne uslugi, a polecenie
netstat -at listuje otwarte gniazdka (mozna dodac opcje n byl 
adresy i porty wypisac jako liczby i nie szukac w DNS).
Ogolnie polecam netstat w czasie uruchamiania programow 
sieciowych. No i jeszcze jakis sniffer.

A adres - no taki jakie masz na dostepnych komputerach. 
Strone kliencka mozesz testowac na jakims z publicznych
serwerow, w sumie dowolnych uslug (np. http - port 80).
Serwer mozna testowac nawet telnetem albo nc.

Jest jeszcze jedna, prosta metoda napisania serwera -
inetd. Piszesz wtedy normalny program komunikujacy sie
przez standardowe we/wy (stdin, stdout) i odpowiednio 
konfigurujesz inetd czy co tam masz i ten inetd sam
uruchomi twoj program w momencie nawiazania polaczenia.


> Pomozcie prosze
> 
> kreska

-- 
Krzysiek Rudnik
Technical Details
Message-ID: <4379854c$0$5421$f69f905@mamut2.aster.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!news.astercity.net!news.aster.pl!not-for-mail
References: <d29d8$4378f38f$d4ba89c3$12770@news.chello.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!news.astercity.net!news.aster.pl!not-for-mail
Message-ID: <4379854c$0$5421$f69f905@mamut2.aster.pl>
From: Krzysztof Rudnik <rudnik@kki.net.pl>
Subject: Re: serwer i klient (programowanie gniazd)
Newsgroups: pl.comp.os.linux.programowanie
Date: Tue, 15 Nov 2005 08:21:11 +0100
References: <d29d8$4378f38f$d4ba89c3$12770@news.chello.pl>
User-Agent: KNode/0.8.0
MIME-Version: 1.0
Lines: 50
NNTP-Posting-Date: 15 Nov 2005 06:50:52 GMT
NNTP-Posting-Host: 10.70.23.98
X-Trace: 1132037452 mamut2.aster.pl 5421 10.70.23.98:32781
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit