เดเตเดกเต เดเดซเตเดฑเตเดฑเตผเดจเตเตบ "เดฒเดฟเดจเดเตเดธเต เดเดชเดฟเด" เดเดจเตเดจ เดชเตเดธเตเดคเดเด เดเดพเตป เดจเดฟเดเตเดเดณเตเดเต เดถเตเดฐเดฆเตเดงเดฏเดฟเตฝเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต. เดธเดฎเดเตเดฐเดฎเดพเดฏ เดเดฐเต เดเตเดกเต" (เดชเตเดธเตเดคเดเดคเตเดคเดฟเดจเตเดฑเต เดตเดฟเดตเตผเดคเตเดคเดจเด เดฒเดฟเดจเดเตเดธเต เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดเดเต เดเดจเตเดฑเตผเดซเตเดธเต). เดชเตเดฐเดธเดพเดงเดเดจเตเดฑเต เดตเตเดฌเตโเดธเตเดฑเตเดฑเดฟเดฒเตเด เดจเดฟเดเตเดเตพ เดชเตเดฐเตเดฎเตเดทเดฃเตฝ เดเตเดกเต เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ เด เดคเต เดเตผเดกเตผ เดเตเดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต LinuxAPI , เดจเดฟเดเตเดเตพเดเตเดเต 30% เดเดฟเดดเดฟเดตเต เดฒเดญเดฟเดเตเดเตเด.
เดฑเดซเดฑเตปเดธเดฟเดจเดพเดฏเดฟ เดชเตเดธเตเดคเดเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดฆเตเดงเดฐเดฃเดฟ:
เดธเตเดเตเดเดฑเตเดฑเตเดเตพ: เดธเตเตผเดตเตผ เดเตผเดเตเดเดฟเดเตเดเตเดเตผ
เด เด เดงเตเดฏเดพเดฏเดคเตเดคเดฟเตฝ, เดเดตเตผเดคเตเดคเดจเดชเดฐเดตเตเด เดธเดฎเดพเดจเตเดคเดฐเดตเตเดฎเดพเดฏ เดธเตเตผเดตเดฑเตเดเตพ เดฐเตเดชเดเตฝเดชเตเดชเดจ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฑเต เด เดเดฟเดธเตเดฅเดพเดจเดเดพเดฐเตเดฏเดเตเดเตพ เดเดเตเดเตพ เดเตผเดเตเด เดเตเดฏเตเดฏเตเด, เดเตเดเดพเดคเต เดเตปเดฑเตผเดจเตเดฑเตเดฑเต เดธเตเตผเดตเตผ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดเดณเตเดชเตเดชเดฎเดพเดเตเดเตเดจเตเดจ inetd เดเดจเตเดจ เดชเตเดฐเดคเตเดฏเตเด เดกเตเดฎเดฃเตเด เดจเตเดเตเดเดพเด.
เดเดตเตผเดคเตเดคเดจเดชเดฐเดตเตเด เดธเดฎเดพเดจเตเดคเดฐเดตเตเดฎเดพเดฏ เดธเตเตผเดตเดฑเตเดเตพ
เดฐเดฃเตเดเต เดธเดพเดงเดพเดฐเดฃ เดธเตเดเตเดเดฑเตเดฑเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดธเตเตผเดตเตผ เดเตผเดเตเดเดฟเดเตเดเตเดเดฑเตเดเตพ เดเดฃเตเดเต:
-
เดเดตเตผเดคเตเดคเดจเด: เดธเตเตผเดตเตผ เดเดฐเต เดธเดฎเดฏเด เดเตเดฒเดฏเดจเตเดฑเตเดเตพเดเตเดเต เดธเตเดตเดจเด เดจเตฝเดเตเดจเตเดจเต, เดเดฆเตเดฏเด เดเดฐเต เดเตเดฒเดฏเดจเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดฐเต เด เดญเตเดฏเตผเดคเตเดฅเดจ (เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ) เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เด เดเตเดคเตเดคเดคเดฟเดฒเตเดเตเดเต เดจเตเดเตเดเตเดจเตเดจเต;
-
เดธเดฎเดพเดจเตเดคเดฐเด: เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดเตเดฒเดฏเดจเตเดฑเตเดเตพเดเตเดเต เดเดฐเตเดธเดฎเดฏเด เดธเตเดตเดจเด เดจเตฝเดเตเดจเตเดจเดคเดฟเดจเดพเดฃเต เดธเตเตผเดตเตผ เดฐเตเดชเดเตฝเดชเตเดชเดจ เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต.
FIFO เดเตเดฏเตเดเดณเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณ เดเดฐเต เดเดตเตผเดคเตเดคเดจ เดธเตเตผเดตเดฑเดฟเดจเตเดฑเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดเดคเดฟเดจเดเด เดคเดจเตเดจเต เดธเตเดเตเดทเตป 44.8-เตฝ เด เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเต.
เดเตเดฒเดฏเดจเตเดฑเต เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดตเดณเดฐเต เดตเตเดเดคเตเดคเดฟเตฝ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดธเดพเดนเดเดฐเตเดฏเดเตเดเดณเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต เดเดตเตผเดคเตเดคเดจ เดธเตเตผเดตเดฑเตเดเตพ เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดเต, เดเดพเดฐเดฃเด เดเดฐเต เดเตเดฒเดฏเดจเตเดฑเดฟเดจเตเด เดฎเตเดจเตเดจเดฟเดฒเตเดณเตเดณ เดฎเดฑเตเดฑเตเดคเตเดเตเดเดฟเดฒเตเด เดเตเดฒเดฏเดจเตเดฑเตเดเตพเดเตเดเต เดธเตเดตเดจเด เดจเตฝเดเตเดจเตเดจเดคเตเดตเดฐเต เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเดพเตป เดจเดฟเตผเดฌเดจเตเดงเดฟเดคเดฐเดพเดเตเดจเตเดจเต. เดเดฐเต เดเตเดฒเดฏเดจเตเดฑเตเด เดธเตเตผเดตเดฑเตเด เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดเดฑเตเดฑ เด เดญเตเดฏเตผเดคเตเดฅเดจเดเดณเตเดเตเดฏเตเด เดชเตเดฐเดคเดฟเดเดฐเดฃเดเตเดเดณเตเดเตเดฏเตเด เดเตเดฎเดพเดฑเตเดฑเดฎเดพเดฃเต เด เดธเดฎเตเดชเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เดเดชเดฏเตเด เดเตเดธเต.
เดเดฐเต เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดเดฃเตเดฏเดฎเดพเดฏ เดธเดฎเดฏเดฎเตเดเตเดเตเดเตเดจเตเดจ เดธเดจเตเดฆเตผเดญเดเตเดเดณเดฟเดฒเต เดเตเดฒเดฏเดจเตเดฑเตเด เดธเตเตผเดตเดฑเตเด เดฆเตเตผเดเดฎเดพเดฏ เดธเดจเตเดฆเตเดถ เดเตเดฎเดพเดฑเตเดฑเดเตเดเดณเดฟเตฝ เดเตผเดชเตเดชเตเดเตเดจเตเดจ เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเดฒเต เดธเดฎเดพเดจเตเดคเดฐ เดธเตเตผเดตเดฑเตเดเตพ เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฃเต. เด เด เดงเตเดฏเดพเดฏเดคเตเดคเดฟเตฝ, เดธเดฎเดพเดจเตเดคเดฐ เดธเตเตผเดตเดฑเตเดเตพ เดฐเตเดชเดเตฝเดชเดจ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเดฐเดฎเตเดชเดฐเดพเดเดค (เดเดฑเตเดฑเดตเตเด เดฒเดณเดฟเดคเดฎเดพเดฏ) เดฎเดพเตผเดเดคเตเดคเดฟเตฝ เดเดเตเดเตพ เดชเตเดฐเดงเดพเดจเดฎเดพเดฏเตเด เดถเตเดฐเดฆเตเดง เดเตเดจเตเดฆเตเดฐเตเดเดฐเดฟเดเตเดเตเด, เด เดคเดพเดฏเดคเต เดเดฐเต เดชเตเดคเดฟเดฏ เดเตเดฒเดฏเดจเตเดฑเดฟเดจเตเด เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเตเตฝเดกเต เดชเตเดฐเตเดธเดธเต เดธเตเดทเตเดเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต. เด เดชเตเดฐเดเตเดฐเดฟเดฏ เดเตเดฒเดฏเดจเตเดฑเดฟเดจเต เดธเตเดตเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฒเตเดฒเดพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเด เดจเดฟเตผเดตเดนเดฟเดเตเดเตเดเดฏเตเด เดคเตเดเตผเดจเตเดจเต เด เดตเดธเดพเดจเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เด เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพ เดเดฐเตเดจเตเดจเตเด เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดเตเดฒเดฏเดจเตเดฑเตเดเดณเต เดเดฐเตเดธเดฎเดฏเด เดธเตเดตเดฟเดเตเดเตเดจเตเดจเดคเต เดธเดพเดงเตเดฏเดฎเดพเดฃเต. เดชเตเดฐเดงเดพเดจ เดธเตเตผเดตเตผ เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเตเดเต (เดฐเดเตเดทเดพเดเตผเดคเต) เดชเตเดฐเดงเดพเดจ เดฆเตเดคเตเดฏเด เดเดฐเต เดชเตเดคเดฟเดฏ เดเตเดฒเดฏเดจเตเดฑเดฟเดจเตเด เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเตเดเตเดเดฟเดฏเต เดธเตเดทเตเดเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต (เดชเดเดฐเด, เดชเตเดฐเตเดธเดธเตเดธเตเดเตพเดเตเดเต เดชเดเดฐเด เดเดเตเดธเดฟเดเตเดฏเตเดทเตป เดคเตเดฐเตเดกเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด).
เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเดฟเดญเดพเดเดเตเดเดณเดฟเตฝ, เดเดตเตผเดคเตเดคเดจเดชเดฐเดตเตเด เดธเดฎเดพเดจเตเดคเดฐเดตเตเดฎเดพเดฏ เดเดจเตเดฑเตผเดจเตเดฑเตเดฑเต เดกเตเดฎเตเดฏเตเตป เดธเตเดเตเดเดฑเตเดฑเต เดธเตเตผเดตเดฑเตเดเดณเตเดเต เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ เดเดเตเดเตพ เดจเตเดเตเดเตเด. เด เดฐเดฃเตเดเต เดธเตเตผเดตเดฑเตเดเดณเตเด เดเดเตเดเต เดธเตเดตเดจเดคเตเดคเดฟเดจเตเดฑเต (RFC 862) เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเดคเดฟเดชเตเดชเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต, เด เดคเต เดเดฐเต เดเตเดฒเดฏเดจเตเดฑเต เด เดฏเดเตเด เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดชเดเตผเดชเตเดชเต เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเดจเตเดจเต.
เดเดตเตผเดคเตเดคเดจ UDP เดธเตเตผเดตเตผ เดเดเตเดเต
เดเดคเดฟเดฒเตเด เด เดเตเดคเตเดค เดตเดฟเดญเดพเดเดคเตเดคเดฟเดฒเตเด เดเดเตเดเตพ เดเดเตเดเต เดธเตเดตเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดธเตเตผเดตเดฑเตเดเตพ เด เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเดเตเด. เดเดคเต เดชเตเตผเดเตเดเต เดจเดฎเตเดชเตผ 7-เตฝ เดฒเดญเตเดฏเดฎเดพเดฃเต, เดเตเดเดพเดคเต UDP, TCP เดเดจเตเดจเดฟเดตเดฏเดฟเดฒเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต (เด เดชเตเตผเดเตเดเต เดฑเดฟเดธเตผเดตเต เดเตเดฏเตโเดคเดคเดพเดฃเต, เด เดคเดฟเดจเดพเตฝ เดเดเตเดเต เดธเตเตผเดตเตผ เด เดกเตเดฎเดฟเดจเดฟเดธเตโเดเตเดฐเตเดฑเตเดฑเตผ เดชเตเดฐเดคเตเดฏเตเดเดพเดตเดเดพเดถเดเตเดเดณเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดฃเด).
เดเดเตเดเต เดฏเตเดกเดฟเดชเดฟ เดธเตเตผเดตเตผ เดคเตเดเตผเดเตเดเดฏเดพเดฏเดฟ เดกเดพเดฑเตเดฑเดพเดเตเดฐเดพเดฎเตเดเตพ เดตเดพเดฏเดฟเดเตเดเตเดเดฏเตเด เด เดฏเดเตเดเดฏเดพเตพเดเตเดเต เด เดตเดฏเตเดเต เดชเดเตผเดชเตเดชเตเดเตพ เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดธเตเตผเดตเดฑเดฟเดจเต เดเดฐเต เดธเดฎเดฏเด เดเดฐเต เดธเดจเตเดฆเตเดถเด เดฎเดพเดคเตเดฐเดฎเต เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดณเตเดณเต เดเดจเตเดจเดคเดฟเดจเดพเตฝ, เดเดฐเต เดเดตเตผเดคเตเดคเดจ เดเตผเดเตเดเดฟเดเตเดเตเดเตผ เดฎเดคเดฟเดฏเดพเดเตเด. เดธเตเตผเดตเดฑเตเดเดณเตเดเต เดนเตเดกเตเดกเตผ เดซเดฏเตฝ เดฒเดฟเดธเตเดฑเตเดฑเดฟเดเดเต 56.1-เตฝ เดเดพเดฃเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดชเดเตเดเดฟเด 56.1. id_echo_sv.c, id_echo_cl.c เดเดจเตเดจเต เดชเตเดฐเตเดเตเดฐเดพเดฎเตเดเตพเดเตเดเตเดณเตเดณ เดนเตเดกเตเดกเตผ เดซเดฏเตฝ
#include "inet_sockets.h" /* เดเดเตเดเดณเตเดเต เดธเตเดเตเดเดฑเตเดฑเต เดซเดเดเตโเดทเดจเตเดเตพ เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเดเตเดจเตเดจเต */
#"tlpi_hdr.h" เดเตพเดชเตเดชเตเดเตเดคเตเดคเตเด
#เดธเตเดตเดจเด "เดเดเตเดเต" เดจเดฟเตผเดตเดเดฟเดเตเดเตเด /* UDP เดธเตเดตเดจ เดจเดพเดฎเด */
#เดจเดฟเตผเดตเตเดตเดเดฟเดเตเดเตเด BUF_SIZE 500 /* เดกเดพเดฑเตเดฑเดพเดเตเดฐเดพเดฎเตเดเดณเตเดเต เดชเดฐเดฎเดพเดตเดงเดฟ เดตเดฒเตเดชเตเดชเด
เดเตเดฒเดฏเดจเตเดฑเดฟเดจเตเด เดธเตเตผเดตเดฑเดฟเดจเตเด เดตเดพเดฏเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด */
_____________________________________________________________________________________________________________________________________________
เดฒเดฟเดธเตเดฑเตเดฑเดฟเดเดเต 56.2 เดธเตเตผเดตเตผ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตฝ เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต. เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเตเดฏเดฟเดจเตเดฑเตเดเตพ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต:
-
เดธเตเตผเดตเดฑเดฟเดจเต เดกเตเดฎเตบ เดฎเตเดกเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต, เดธเตเดเตเดทเตป 37.2-เตฝ เดจเดฟเดจเตเดจเต เดเดเตเดเตพ becomeDaemon() เดซเดเดเตโเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต;
-
เดชเตเดฐเตเดเตเดฐเดพเด เดเตเดเตเดคเตฝ เดเดคเตเดเตเดเดฎเตเดณเตเดณเดคเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดธเตเดเตเดทเตป 55.12-เตฝ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเด เดเดจเตเดฑเตผเดจเตเดฑเตเดฑเต เดกเตเดฎเตเดฏเตเตป เดธเตเดเตเดเดฑเตเดฑเตเดเดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดเดเตเดเตพ เดฒเตเดฌเตเดฐเดฑเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต;
-
เดธเตเตผเดตเดฑเดฟเดจเต เดเตเดฒเดฏเดจเตเดฑเดฟเดจเต เดเดฐเต เดชเตเดฐเดคเดฟเดเดฐเดฃเด เดจเตฝเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เด เดคเต syslog() เดเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดฒเตเดเดฟเดฒเตเดเตเดเต เดเดฐเต เดธเดจเตเดฆเตเดถเด เดเดดเตเดคเตเดจเตเดจเต.
เดเดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเตฝ, syslog() เดเดชเดฏเตเดเดฟเดเตเดเต เดฒเตเดเดฟเดเดเต เดธเดจเตเดฆเตเดถเดเตเดเดณเตเดเต เดเดตเตเดคเตเดคเดฟเดฏเดฟเตฝ เดเดเตเดเตพ เดเดฟเดฒ เดชเดฐเดฟเดงเดฟเดเตพ เดเตผเดชเตเดชเตเดเตเดคเตเดคเตเด. เดเดฐเต เดเดเตเดฐเดฎเดฃเดเดพเดฐเดฟ เดธเดฟเดธเตเดฑเตเดฑเด เดฒเตเดเต เดเดตเดฟเดเตเดเตเดดเตเดเดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดเดคเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเด. เดเตเดเดพเดคเต, syslog() เดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดเตเดณเตเด เดตเดณเดฐเต เดเตเดฒเดตเตเดฑเดฟเดฏเดคเดพเดฃเตเดจเตเดจเต เดฎเดฑเดเตเดเดฐเตเดคเต, เดเดพเดฐเดฃเด เด เดคเต เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ fsync() เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
เดชเดเตเดเดฟเด 56.2. UDP เดเดเตเดเต เดธเตเดตเดจเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจ เดเดตเตผเดคเตเดคเดจ เดธเตเตผเดตเตผ
_________________________________________________________________ เดธเตเดเตเดเดฑเตเดฑเตเดเตพ/id_echo_sv.c
#เดเตพเดชเตเดชเตเดเตเดจเตเดจเต
#"id_echo.h" เดเตพเดชเตเดชเตเดเตเดคเตเดคเตเด
#เดเตพเดชเตเดชเตเดเตเดคเตเดคเตเด "become_daemon.h"
int
เดชเตเดฐเดงเดพเดจ(int argc, char *argv[])
{
int sfd;
ssize_t numRead;
เดธเตเดเตเดเตเดฒเตเตป_เดเดฟ เดฒเตเตป;
เดธเตเดเตเดฐเดเตเดฑเตเดฑเต sockaddr_storage claddr;
เดเดพเตผ เดฌเดซเต[BUF_SIZE];
char addrStr[IS_ADDR_STR_LEN];
เดเดเตเดเดฟเตฝ (เดกเตเดฎเตป (0) == -1)
errExit("becomeDaemon");
sfd = inetBind(SERVICE, SOCK_DGRAM, NULL);
เดเดเตเดเดฟเตฝ (sfd == -1) {
syslog(LOG_ERR, "เดธเตเตผเดตเตผ เดธเตเดเตเดเดฑเตเดฑเต (%s) เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดเตเดเดฟเดฒเตเดฒ",
strerror (errno));
เดชเตเดฑเดคเตเดคเตเดเดเดเตเดเตเด (EXIT_FAILURE);
/* เดกเดพเดฑเตเดฑเดพเดเตเดฐเดพเดฎเตเดเตพ เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เด
เดตเดฏเตเดเต เดชเดเตผเดชเตเดชเตเดเตพ เด
เดฏเดฏเตเดเตเดเตเดจเตเดจเดตเตผเดเตเดเต เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด */
}
เดตเตเดฃเตเดเดฟ (;;) {
เดฒเตเตป = sizeof(sckaddr_storage);
numRead = recvfrom(sfd, buf, BUF_SIZE, 0, (struct sockaddr *) &claddr, &len);
เดเดเตเดเดฟเตฝ (เดเดฃเตเดฃเด เดตเดพเดฏเดฟเดเตเดเตเด == -1)
errExit("recvfrom");
เดเดเตเดเดฟเตฝ (sendto(sfd, buf, numRead, 0, (struct sockaddr *) &claddr, len)
!= numRead)
syslog(LOG_WARNING, "%s (%s) เดจเตเดณเตเดณ เดชเตเดฐเดคเดฟเดเดฐเดฃเด เดชเตเดฐเดคเดฟเดงเตเดตเดจเดฟเดเตเดเตเดจเตเดจเดคเดฟเตฝ เดชเดฟเดถเดเต",
inetAddressStr((เดธเตโเดเตเดฐเดเตโเดฑเตเดฑเต เดธเตเดเตเดเดพเดกเตโเดเตผ *) &เดเตเดฒเดพเดกเตโเดกเตผ, เดฒเตเตป,
addrStr, IS_ADDR_STR_LEN),
strerror (errno));
}
}
_________________________________________________________________ เดธเตเดเตเดเดฑเตเดฑเตเดเตพ/id_echo_sv.c
เดธเตเตผเดตเดฑเดฟเดจเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเดเตเดเตพ เดฒเดฟเดธเตเดฑเตเดฑเดฟเดเดเต 56.3-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเตเดฐเตเดเตเดฐเดพเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดธเตเดเตเดทเตป 55.12-เตฝ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเด เดเดจเตเดฑเตผเดจเตเดฑเตเดฑเต เดกเตเดฎเตเดฏเตเตป เดธเตเดเตเดเดฑเตเดฑเตเดเดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดเดคเต เดฒเตเดฌเตเดฐเดฑเดฟเดฏเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดเดฆเตเดฏเดคเตเดคเต เดเดฎเดพเตปเดกเต เดฒเตเตป เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเต เดเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ, เดเตเดฒเดฏเดจเตเดฑเต เดชเตเดฐเตเดเตเดฐเดพเด เดธเตเตผเดตเตผ เดธเตเดฅเดฟเดคเดฟเดเตเดฏเตเดฏเตเดจเตเดจ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดจเตเดกเดฟเดจเตเดฑเต เดชเตเดฐเต เดเดเตเดเตเดเตเดจเตเดจเต. เดเตเดฒเดฏเดจเตเดฑเต เดเดฐเต เดฒเตเดชเตเดชเดฟเดฒเตเดเตเดเต เดชเตเดฐเดตเตเดถเดฟเดเตเดเตเดจเตเดจเต, เด เดตเดฟเดเต เด เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเดณเตเด เดชเตเดฐเดคเตเดฏเตเด เดกเดพเดฑเตเดฑเดพเดเตเดฐเดพเดฎเตเดเดณเดพเดฏเดฟ เดธเตเตผเดตเดฑเดฟเดฒเตเดเตเดเต เด เดฏเดฏเตเดเตเดเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดเตเดเตเดจเตเดจ เดกเดพเดฑเตเดฑเดพเดเตเดฐเดพเดฎเตเดเตพ เดชเตเดฐเดคเดฟเดเดฐเดฃเดฎเดพเดฏเดฟ เดตเดพเดฏเดฟเดเตเดเตเดเดฏเตเด เดชเตเดฐเดฟเดจเตเดฑเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดชเดเตเดเดฟเด 56.3. UDP เดเดเตเดเต เดธเตเดตเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดเตเดฒเดฏเดจเตเดฑเต
#"id_echo.h" เดเตพเดชเตเดชเตเดเตเดคเตเดคเตเด
int
เดชเตเดฐเดงเดพเดจ(int argc, char *argv[])
{
int sfd, j;
เดตเดฒเดฟเดชเตเดชเด_เดเดฟ เดฒเตเตป;
ssize_t numRead;
เดเดพเตผ เดฌเดซเต[BUF_SIZE];
เดเดเตเดเดฟเตฝ (argc < 2 || strcmp(argv[1], "--help") == 0)
UseErr("%s เดนเตเดธเตเดฑเตเดฑเต msg...n", argv[0]);
/* เดเดฆเตเดฏเดคเตเดคเต เดเดฎเดพเตปเดกเต เดฒเตเตป เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเดฟเดจเต เด
เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ เดธเตเตผเดตเตผ เดตเดฟเดฒเดพเดธเด เดฐเตเดชเดชเตเดชเตเดเตเดคเตเดคเตเด */
sfd = inetConnect(argv[1], SERVICE, SOCK_DGRAM);
เดเดเตเดเดฟเตฝ (sfd == -1)
เดฎเดพเดฐเดเดฎเดพเดฏ ("เดธเตเตผเดตเตผ เดธเตเดเตเดเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดเตเดเดฟเดฒเตเดฒ");
/* เดถเตเดทเดฟเดเตเดเตเดจเตเดจ เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพ เดชเตเดฐเดคเตเดฏเตเด เดกเดพเดฑเตเดฑเดพเดเตเดฐเดพเดฎเตเดเดณเตเดเต เดฐเตเดชเดคเตเดคเดฟเตฝ เดธเตเตผเดตเดฑเดฟเดฒเตเดเตเดเต เด
เดฏเดฏเตเดเตเดเตเด */
เดตเตเดฃเตเดเดฟ (j = 2; j < argc; j++) {
เดฒเตเตป = strlen (argv[j]);
เดเดเตเดเดฟเตฝ (เดเดดเตเดคเตเด(sfd, argv[j], len) != len)
เดฎเดพเดฐเดเดฎเดพเดฏ ("เดญเดพเดเดฟเด/เดชเดฐเดพเดเดฏเดชเตเดชเตเดเตเด เดเดดเตเดคเตเดคเต");
numRead = เดฑเตเดกเต (sfd, buf, BUF_SIZE);
เดเดเตเดเดฟเตฝ (เดเดฃเตเดฃเด เดตเดพเดฏเดฟเดเตเดเตเด == -1)
errExit ("เดตเดพเดฏเดฟเดเตเดเตเด");
printf("[%ld bytes] %.*sn", (เดจเตเดฃเตเด) numRead, (int) numRead, buf);
}
เดชเตเดฑเดคเตเดคเตเดเดเดเตเดเตเด (EXIT_SUCCESS);
}
_________________________________________________________________ เดธเตเดเตเดเดฑเตเดฑเตเดเตพ/id_echo_cl.c
เดธเตเตผเดตเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฎเตเดชเตเตพ เดจเดฎเตเดฎเตพ เดเดพเดฃเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเดตเตเด เดฐเดฃเตเดเต เดเตเดฒเดฏเดจเตเดฑเต เดธเดเดญเดตเดเตเดเดณเตเด เดเตเดตเดเตเดฏเตเดฃเตเดเต:
$su // เดเดฐเต เดฑเดฟเดธเตผเดตเตเดกเต เดชเตเตผเดเตเดเดฟเดฒเตเดเตเดเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดชเตเดฐเดคเตเดฏเตเดเดพเดตเดเดพเดถเดเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเต
เดฐเดนเดธเตเดฏเดตเดพเดเตเดเต:
# ./id_echo_sv // เดธเตเตผเดตเตผ เดชเดถเตเดเดพเดคเตเดคเดฒ เดฎเตเดกเดฟเดฒเตเดเตเดเต เดชเตเดเตเดจเตเดจเต
# เดชเตเดฑเดคเตเดคเตเดเดเดเตเดเตเด // เด
เดกเตเดฎเดฟเดจเดฟเดธเตเดเตเดฐเตเดฑเตเดฑเตผ เด
เดตเดเดพเดถเดเตเดเตพ เดเดชเตเดเตเดทเดฟเดเตเดเตเด
$ ./id_echo_cl เดฒเตเดเตเดเตฝเดนเตเดธเตเดฑเตเดฑเต เดนเดฒเต เดตเตเตพเดกเต // เด เดเตเดฒเดฏเดจเตเดฑเต เดฐเดฃเตเดเต เดกเดพเดฑเตเดฑเดพเดเตเดฐเดพเดฎเตเดเตพ เด
เดฏเดฏเตเดเตเดเตเดจเตเดจเต
[5 เดฌเตเดฑเตเดฑเตเดเตพ] เดนเดฒเต // เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดเตเด เดชเตเดฐเดคเดฟเดเดฐเดฃเด เดเตเดฒเดฏเดจเตเดฑเต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต
[5 เดฌเตเดฑเตเดฑเตเดเตพ] เดฒเตเดเด
$ ./id_echo_cl เดฒเตเดเตเดเตฝเดนเตเดธเตเดฑเตเดฑเต เดตเดฟเด // เด เดเตเดฒเดฏเดจเตเดฑเต เดเดฐเต เดกเดพเดฑเตเดฑเดเตเดฐเดพเด เด
เดฏเดฏเตเดเตเดเตเดจเตเดจเต
[7 เดฌเตเดฑเตเดฑเตเดเตพ] เดตเดฟเด
เดเดพเตป เดจเดฟเดเตเดเตพเดเตเดเต เดจเดฒเตเดฒ เดตเดพเดฏเดจ เดเดถเดเดธเดฟเดเตเดเตเดจเตเดจเต)
เด เดตเดฒเดเดฌเด: linux.org.ru