prijem ctrl-c pres soket

Petr Pisar petr.pisar na atlas.cz
Čtvrtek Prosinec 8 22:33:03 CET 2005


Michal Vojan napsal(a):
> Petr Pisar wrote:
> 
>>Pavel Kankovsky napsal(a):
>>
>>>On Thu, 1 Dec 2005, Michal Vojan wrote:
>>>
>>>>chtel bych umet prijimat signaly typu ctrl-c, kdyz se ke svemu programu
>>>>pripojim pres soket. Napr. pomoci telnetu se pripojim, zadam par prikazu
>>>>a pak se pomoci ctrl-c chci odpojit. Namisto toho se mi program zastavi,
>>>>dokud nestisknu enter. Mam neco nastavit u soketu? Nebo nekde jinde. Diky
>>>
>>>
>>>Kdyz zmacknete Ctrl+C, tak to zpracuje samotny program telnet a promeni
>>>ho na ridici sekvenci telnetoveho protokolu konkretne znaky s kodem 255
>>>(IAC) a 244 (IP = Interrupt Process) (krome toho jeste posilal vyzvu,
>>>kterou se pokousi vyjednat pouzit nejakeho rozsireni, ale asi uplne
>>>dulezite). Ovsem pokud ctete text po radcich, tak to pochopitelne hned
>>>neuvidite, protoze se to jen nacpe do nejakeho bufferu.
>>
>>A neodesila se to jako out-of-band data? Pak by tyto znaky mohl
>>zpracovat "okamzite", ne?
> 
> 
> Zda se, ze se tam nejaka takova data odesilaji. Vi nekdo, jak se takova data
> obsluhuji? Na neco se musi dat reagovat, nebot po stisku ctrl-c se mi cely
> program zastavi.  nebo ne?
> 
recv(int s, void *buf, size_t len, int flags), kde flags ma nastaveny 
bit konstantou MSG_OBB. Vice v manualu recv(2).

--Petr


Další informace o konferenci Linux