talk

Pavel JANIK ml. Pavel.Janik na inet.cz
Čtvrtek Prosinec 4 22:44:36 CET 1997


   Date: Thu, 4 Dec 1997 13:48:04 +0100 (MET)
   From: Pavel Cech <cech na bva.czn.cz>

   Jak se pak realizuje samotna komunikace?

Komunikace pri talku je realizovana nasledovne:

Vy zadate na prikazove radce napriklad prikaz

	talk pavel na SnowWhite.inet.cz

Program talk se pomoci getservent(3) podiva do souboru /etc/services,
zda-li pro sluzbu ntalk/udp (v pripade Linuxu, jinde se pouziva i
talk/udp) existuje zaznam. Pokud ne, vypise asi neco o tom, ze sluzba
ntalk neni registrovana (vetsina programu je psana takto, nektere vsak
primo pouziji cislo portu, coz je pochopitelne nekorektni chovani).

Pokud je sluzba nalezena, otevre se UDP spojeni se vzdalenym pocitacem
na prislusny UDP port (na Red Hat Linuxu je to UDP port cislo 518, na
jinych OS to muze byt i 517 z cehoz (ale nejen proto) vznikaji zname
problemy talku mezi jinymi OS...).

Pokud se spojeni podari (tj. na vzdalenem pocitaci bezi demon, ktery
obsluhuje prichozi volani tj. v /etc/inetd.conf je prislusny zaznam,
ktery jiz napsal Pavel Kankovsky a existuje prislusny demon; a mame
povoleni na tomto portu komunikovat) a vzdaleny uzivatel nami zadaneho
jmena je a. prihlasen a b. ma povoleno "obtezovani" od ostatnich
(tj. mesg y - mesg(1)) potom mu prislusny talk demon (in.ntalkd nebo
in.talkd) na obrazovku vypise hlaseni, ze jej nekdo chce "obtezovat"
(kdyby moje pritelkyne videla, co jsem ted napsal, asi by mi neco
udelala...) a nas pocitac otevre TCP socket na nejakem volnem portu,
ktery je vetsi nez cislo IPPORT_RESERVED definovane v <netinet/in.h>.

Vzdaleny uzivatel se muze rozhodnout, zda volani prijme ci
nikoli. Pokud jej prijme prikazem

	talk vas_login na vas_pocitac.vase_domena

navaze se spojeni s otevrenym TCP socketem na Vasem pocitaci a muzete
"talkovat" co hrdlo raci.

   > Musi dole uvedeny zaznam byt na obou pocitacich?

   > > v inetd.conf by melo byt neco jako
   > > 
   > > talk    dgram   udp     wait    root    /usr/sbin/tcpd  in.talkd
   > > ntalk   dgram   udp     wait    root    /usr/sbin/tcpd  in.ntalkd

Ne, jak jsem vyse napsal, musi byt tyto zaznamy v souboru
/etc/inetd.conf (staci pouze jeden, ten "spravny") na pocitaci, ktery
spojeni prijima, tedy na vzdalenem, protoze jinak by spojeni nebylo
prijato.

Ale je treba, aby na obou pocitacich byl v souboru /etc/services
zaznam o sluzbe talk (ntalk).

Blizsi informace o protokolu talk naleznete v jeho definici (cislo RFC
bohuzel neznam :-( ) a informace o sitovem programovani naleznete v
knize W. R. Stevense - UNIX Network Programing, ktera vysla i v ceskem
prekladu.

Pozn.: UNIX je registrovanou ochrannou znamkou sveho majitele.

Na originale zminene knihy je napsano:

	UNIX (r) is a registered trademark of AT&T.

V Ceske republice tomu tak zatim bohuzel neni...

-- 
Pavel Janik ml.
Pavel.Janik na inet.cz


Další informace o konferenci Linux