有关使用Pipes和Daemon进程在Linux中编写聊天室C程序的任何建议吗?

时间:2011-06-24 06:11:46

标签: c++ c linux pipe

要求是制作一个聊天室的C / C ++程序。

1,客户端和服务器程序都不需要GUI,只使用命令行。而且他们只需要在与管道连接的同一台机器上运行。

2,在守护程序进程中使用FIFO队列,用户可以同时使用守护进程进行聊天。

3,守护程序进程刷新在线用户的数量并向客户端打印登录/注销消息。

4,客户端在启动时需要昵称,服务器在昵称冲突时拒绝。

它应该尽可能地调整进程,守护程序进程,管道,信号,I / O,线程来制作这个程序。

现在我不熟悉Linux中的进程。你能告诉我一个聊天室的操作过程示例,或者一个简单的框架,我可以编写函数而不用担心过程。

欢迎任何有关编写此程序的建议!

2 个答案:

答案 0 :(得分:1)

听起来你被要求设计来编写这个程序。

你的问题听起来很像你需要有一个客户端 - 服务器架构(这是有意义的)并通过管道进行交谈(你可以用套接字做同样的事情,所以你可能想让这个层易于换出后)

因此,您需要一个在后台运行的程序(一个守护程序),它运行服务,在管道上侦听聊天消息,并监视/var/run/utmp以查看谁登录到该计算机。

可以将守护进程编写为单线程进程并使用select调用来监视客户端和utmp文件,但由于您有线程要求,因此您可以将这两个函数中的每一个都设置为线程,使你的程序更复杂,更难调试,但我要争辩谁。

您需要另一个程序,用户可以运行该程序以通过管道连接到守护程序,并且您可以键入消息或从守护程序打印消息。同样,这可以通过单线程完成,但您可能希望将传输和接收拆分为线程。

答案 1 :(得分:0)

如何使用talk