要求是制作一个聊天室的C / C ++程序。
1,客户端和服务器程序都不需要GUI,只使用命令行。而且他们只需要在与管道连接的同一台机器上运行。
2,在守护程序进程中使用FIFO队列,用户可以同时使用守护进程进行聊天。
3,守护程序进程刷新在线用户的数量并向客户端打印登录/注销消息。
4,客户端在启动时需要昵称,服务器在昵称冲突时拒绝。
。
它应该尽可能地调整进程,守护程序进程,管道,信号,I / O,线程来制作这个程序。
现在我不熟悉Linux中的进程。你能告诉我一个聊天室的操作过程示例,或者一个简单的框架,我可以编写函数而不用担心过程。
欢迎任何有关编写此程序的建议!
答案 0 :(得分:1)
听起来你被要求设计和来编写这个程序。
你的问题听起来很像你需要有一个客户端 - 服务器架构(这是有意义的)并通过管道进行交谈(你可以用套接字做同样的事情,所以你可能想让这个层易于换出后)
因此,您需要一个在后台运行的程序(一个守护程序),它运行服务,在管道上侦听聊天消息,并监视/var/run/utmp
以查看谁登录到该计算机。
可以将守护进程编写为单线程进程并使用select
调用来监视客户端和utmp
文件,但由于您有线程要求,因此您可以将这两个函数中的每一个都设置为线程,使你的程序更复杂,更难调试,但我要争辩谁。
您需要另一个程序,用户可以运行该程序以通过管道连接到守护程序,并且您可以键入消息或从守护程序打印消息。同样,这可以通过单线程完成,但您可能希望将传输和接收拆分为线程。
答案 1 :(得分:0)
如何使用talk?