基于socket和多线程的聊天程序设计与实现

【要求】

1. 设计一款多人聊天程序,包括服务器端和客户端;

2. 服务器先运行,自动获取IP,创建socket并绑定在2017端口;

3. 客户端通过IP地址连接服务器端,由argv[1]提供IP地址,回车后提示输入昵称,然后登录服务器;

4. 服务器负责接收用户的信息,处理后转发给其他用户;如有用户登录或退出,服务器将通知所有人;

5. 客户端登录后进入群聊,所发送的消息其他用户都可以接收到,接收的信息前面显示发送者的昵称和发送时间;

6. 客户端可以输入命令/sendto 昵称 信息”向选定的用户发送私聊信息,私聊信息只有选定的用户可以接收,其他用户看不到;

7. 用户可以输入命令/save”保存聊天记录,聊天记录保存在“./msgsave_昵称”文件中(“昵称”为保存者自己的昵称);也可以输入命令“/load”读取聊天记录,仅可查看自己保存的聊天记录,保存和读取聊天记录时需要使用文件锁;

8. 客户端输入/exit”后退出程序;服务器端输入“/exit”后,给所有客户端发送提示信息并退出程序,客户端接收到提示后也随即退出;

9. 服务器端的出错信息打印输出到屏幕上,并发送给系统日志(/var/log/messages);

10. 其他功能可根据自己的喜好添加;

11. 根据需要,可灵活运用文件I/OI/O多路复用、进程、线程、进程间通信和网络等实现所需功能

猜你喜欢

转载自blog.csdn.net/hemeng0115/article/details/78892129