暑假项目聊天室(1)---项目演示

聊天室项目功能需求介绍

功能前不加*号的为必须完成的要求,加*号的为附加功能。


基本要求:

  1. 帐号管理:
  • 登录
  • 注册(防止重复登录、防止重复注册、不显示密码内容)
  • 密码加密
  • 找回密码
  1. 好友管理:
  • 添加好友(必须通过好友同意)
  • 删除好友
  • 查看好友列表(显示好友状态)
  1. 聊天通信:
  • 私聊(必须保证不在对方的黑名单里,实时显示)
  • 群聊
  • 查看聊天记录
  • 离线消息
  • *屏蔽某人消息
  1. 群管理:
  • 创建群
  • 加群
  • 退群
  • 查看已加群,查看群成员
  • 解散群(群主才有的权限)
  • 设置管理员
  • 踢人(群主或管理员拥有的权限)
  1. 传送文件
  • 发送文件和接受文件(考虑大文件)
    6.离线传输
  • 离线消息,上线即传送
  • **离线文件,上线即提醒有文件传送
    7.有关客户端的要求:
  • 容错处理:对于输入内容进行判断,防止用户不正规操作导致程序崩溃。
  • **聊天界面分屏:利用光标的移动对输入和屏幕聊天记录输出的分屏。
    8.有关服务器的要求:
  • 稳定性:这是服务器最基本的要求。

(1).面对同时大量的客户端发送连接与数据时,服务器能正常处理。
(2).客户端的意外退出,不会导致服务器退出。比如客户端ctrl+c。
(3).数据能够正确接收和发送。

  • 高效性:面对大量的并发处理请求到来时,能够快速的处理完。大家在设计服务器的时侯,尽量往率这方面靠吧。比如如果加了传输文件的功能,一个客户端往服务器发送一个特别大的文件时,服务器不能因为接收这个文件而导致后面其他用户的请求半天无法被处理。
  • 服务器日志,将服务器的不同状态信息写入文件。
    9.数据库的使用
  • Mysql数据库的使用

附加要求:

  • *cJson的使用。
  • *I/O多路复用。最好使用epoll,epoll单线程或epoll多线程模式都可以。
  • *调用外部应用,实现非实时语音视频
  • *图形化显示(opengl、QT、GTK、curses)
  • *文件发送与接收的断点续传
  • *线程池的使用
  • 。。。

PS:

基本的功能在以上都列出了。需要注意的是,功能在设计时要符合正常的逻辑要求。比如添加好友,需要对方的同意等。

登录

在这里插入图片描述
在Linux下没有getch()这个函数,所以只能通过关闭显示区来实现密码的隐藏;

#include <stdio.h>
#include <stdlib.h>
#include <termios.h>
#include <unistd.h>

int main()
{
	struct termios old,new;

	char password[8] = {0};	
	char ch;
	int  i = 0;

	tcgetattr(0,&old);
	new = old;

	new.c_lflag &= ~(ECHO | ICANON);

	printf("请输入密码....\n");

	while(1)
	{
		tcsetattr(0,TCSANOW,&new);

		scanf("%c",&ch);

		tcsetattr(0,TCSANOW,&old);

		if(i == 8 || ch == '\n')
		{
			break;
		}

		password[i] = ch;
		printf("*");

		i++;
	}

	return 0;
}

在登录成功后会显示
在这里插入图片描述
在这里插入图片描述
进入菜单页面;
如果登录失败,例如账号错误,或者密码错误
在这里插入图片描述

注册

在这里插入图片描述
注册成功后会返回到登录界面;

加好友

在这里插入图片描述
此时如果账号为1000037的人在线他会收到
在这里插入图片描述
如果他没有在线,他会在上线以后收到在这里插入图片描述
这里就会显示在离线期间有一个好友发来申请,此时可以打开4.处理好友请求
在这里插入图片描述
如果接受了好友请求,在数据库中的friends这张表中就会存下;
在这里插入图片描述
0表示普通朋友,1表示特别关心,-1表示黑名单

好友聊天

在这里插入图片描述
输入#bey表示退出与该好友聊天;
如果该好友在线,会直接将消息发送过去,好友此时会收到在这里插入图片描述
在这里插入图片描述
如果此时两个用户恰好在直接对话则会直接显示消息内容
在这里插入图片描述

查看好友列表

在这里插入图片描述

查看聊天记录

在这里插入图片描述
当一方删除了聊天记录以后;
在这里插入图片描述
在这里插入图片描述
在数据表中删除一方的标志会变成0此时另一方还能查看;

对于群聊加群的操作与单聊加好友基本类似,在这里不做演示,大家可以自行尝试,源码在上一篇博客中;

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值