Požiadavka je vytvoriť program C / C ++, ktorý je chatovou miestnosťou.
1, Klientský aj serverový program nepotrebujú GUI, použite iba príkazový riadok. Potrebujú iba bežať na rovnakom stroji, ktorý je spojený s potrubím.
2, použite frontu FIFO v procese Daemon a používatelia môžu chatovať pomocou procesu Daemon súčasne.
3, proces Daemon obnovuje počet online používateľov a tlačí prihlasovacie / odhlasovacie správy klientom.
4, Klient vyžaduje pri spustení prezývku a server odmietne, keď prezývka zostane v konflikte.
.
Je potrebné prispôsobiť procesy, démonove procesy, rúry, signály, I / O, nite, aby tento program vytvoril čo najviac.
Teraz nie som oboznámený s procesmi v systéme Linux. Môžete mi ukázať príklad operačných procesov v diskusnej miestnosti alebo jednoduchý rámec, ktorý dokážem napísať funkcie bez obáv z procesov.
A akékoľvek ďalšie návrhy týkajúce sa napísania tohto programu sú vítané!
odpovede:
1 pre odpoveď č. 1Znie to, akoby ste boli požiadaní o obidva návrhy a napíš tento program.
Vaša otázka znie skôr, ako by ste ju mali maťarchitektúra klient-server (ktorá má zmysel) a hovorí cez potrubie (rovnako môžete urobiť to isté s päticou, takže by ste mohli chcieť túto vrstvu ľahko vymeniť neskôr)
Potrebujete teda jeden program, ktorý sa spustí po spustení na pozadí (démon), ktorý spustí službu počúvania v potrubí pre chatové správy a tiež monitoruje /var/run/utmp
aby ste videli, kto je prihlásený do zariadenia.
Démona je možné napísať ako proces s jedným vláknom a pomocou select
hovory na monitorovanie klienta a internetu; utmp
súbor, ale pretože máte požiadavku na vlákna, mohli by ste, aby každá z týchto dvoch funkcií bola vláknami, robí váš program zložitejším a zložitejším na ladenie, ale na koho sa hádam.
Potrebujete ďalší program, do ktorého môže používateľ spustiťpripojte sa k démonovi pomocou rúry a aby ste do démona mohli písať správy alebo tlačiť správy. Znova by to bolo možné urobiť jednovláknovým, ale môžete radšej rozdeliť vysielanie a prijať namiesto toho vlákna.
0 pre odpoveď č. 2
A čo jednoducho používať rozprávanie?