系统网络项目

2016-11-14  本文已影响0人  踩在浪花上00

(1)用户注册:

【1】  客户端可以注册

注册信息直接写入文件即可;也可以先写入链表,再写入文件

用户名密码结构体(仅供参考):

struct  register

{

char  name[32];

char  passwd[32];

int  flag;

struct  register  *next;

};

(2)用户登录:

【1】:client端接收用户名和密码->存于结构体中->将结构体发送给server端。

【2】:server端接收client发送的结构体->打开存储用户名密码的文件->文件写入链表中->遍历链表验证用户信息。

【3】:server端验证正确发送allow,错误发回deny。client端接收,allow则进入聊天,deny则跳出。

用户名密码结构体(仅供参考):

sruct  login{

char  name[32];

char  passwd[32];

int  flag;

struct  login  *next;

};

【4】:若验证成功,server端产生一个新的套接字newfd,将它与用户名封装于同一个结构体中,存储在线用户的信息。

  存储在线用户信息的结构体(仅供参考):

struct  online{

char  name[32];

int  newfd;

struct  online  *next;

};

(3)一对一聊天:

【1】:在一对多聊天模型中,在client端选择发送给一个对象,即可实现一对一聊天。

(4)一对n人聊天:

【1】:server端向client端发送在线用户姓名列表。

【2】:client端欲发送信息到  user1  user2  ...(选择自己发送信息的接收方)。

【3】:server端接收client端在【2】中发送的信息,并截取user1,user2...的用户名,同时截取聊天正文。

【4】:server端从在线用户信息的链表中查找user1,user2...的套接字描述符。

【5】:server端将聊天正文发送给client端指定的接收对象user1,user2...。

(5)发送的信息

一对一

stu1:hello

一对多

stu1:stu2:stu3:hello

(6)主要功能描述

1、注册,是否重复注册

2、登录,是否重复登录,下线后是否会重复登录

3、聊天转发方法

4、客户端-服务器框架  多进程(多线程)-多线程(  select)

5、上线,下线通知

6、quit  ctrl+c  2种退出方法

7、记录注册消息

8、记录日志

9、可以是基于TCP的socket,也可以是基于UDP的socket

11、密码隐藏或者显示*

12、Makefile(可选)

14、上传文件,下载文件。

15、禁言,解禁言。

16、建立群、讨论组。b

上一篇 下一篇

猜你喜欢

热点阅读