首页 > 分享 > C语言开发邮件系统

C语言开发邮件系统

基本功能设定:申请、注销、发送、阅读、删除、保存;

服务器:保存信息、验证密码、接收转发、管理(存、开、删);

客户端:选择服务项、读删编辑发送;

共有功能:C到S发送请求、密码等;S到C发送响应;C到S发送邮件;S到C传送邮件。(可用Linux的SOCKET网络编程接口实现)

模块:

1、服务器:文件与通信;(信件管理的开删等与用户信息的保持验证)

2、客户端:通信与界面。(界面功能与传邮件及请求信息)

服务端:

文件处理模块:

1、用户信息文件一个;(集中用户文档)

2、邮件列表文件若干;(记录寄信人、邮编号、发信时间、主题等)

3、邮件文件若干;(保存用户邮件内容)

信件管理模块:打开删功能,一个函数实现;

1、打开邮件列表;(登录成功调用该功能)

2、打开邮件;(读邮件时调用)

3、删除邮件;(删除命令调用)

用户信息管理模块:

1、保持用户密码对;(点注册传送信息时调用,并添加到邮件文件)

2、验证密码;(登录发送密码时调用,成功则法提示到C并打开邮件列表,失败提示重新输入密码)

服务器通信模块:调用SOCKET函数族,创建套接字、绑定端口、等待连接。

1、S→C发送响应;

2、S→C发送邮件;(S打开邮件文件,传输文本,C接收并写入本地新文件);

3、C→S发送服务请求;

4、C→S传送邮件;(同上,将S与C对调)

客户端:

界面模块:

1、系统初始界面;(包括"注册"、"登录")

2、输入账号密码界面;(点击上面进入)

3、进入邮箱界面;(打开邮件列表,提供读发删退注销等命令选择)

4、邮件编辑界面;(点"发邮件"进入,)

5、读邮件界面。 (选择"读邮件",S将邮件→C)

通信模块:

1、调用SOCKET函数族;(需知道服务器工作的端口)

详细设计:

1、代码组织:

服务器程序:主程序、通信模块与文件处理模块;(前两者在同一文件,组成服务器程序serprog.c,后者由include引用)

客户端程序:放在cliprog.c(缺乏文件处理模块)

2、数据格式:

抽象数据结构邮件结构类型,包括收发者、主题、正文、时间、编号等。

3、同步机制:

同步函数:int SendSockChar(int sockfd,char ch):发送同步字符。参数,套接字号及待发送字符;

char GetSockChar(int sockfd):接收一个同步字符。读取用while循环

4、系统函数:

read();

write();

5、自编函数:

int readline(int,void*,int);从套接字中读取一行内容

int sockendline(int);发送换行符

void CutEndl(char *str);去换行符(避免验证密码返回错误结果)

6、头文件和常量定义:

7、主程序:

服务器主程序:并发服务器

1、初始化地址信息;

2、创建套接字开始倾听;

3、等待连接。

(若S进程接收一个连接,系统调用FORK创建一个子进程为客户服务,父进程继续在端口上等待连接;)

客户端主程序:

1、main()函数:命令行参数3个,传入服务器程序运行IP地址和端口号,验证后建立连接,

调用客户端服务的主函数。(不太明白运行机制)

8、连接函数:

1、服务器:StartListening(),调用socket()、bind()、listen()建立倾听套接字;

2、客户端:ConnectToServer(),调用socket()、connect()建立与服务器连接,参数为服务器IP及端口号,

调用时输入命令行参数agrv[1]和agrv[2]。

9、服务“主函数”:

1、服务器主函数 int ServerMain(int sockfd)

2、客户端主函数 int ClientMain(int sockfd)

10、邮件服务函数:

A、服务器服务函数:

1、int RegisterSev(int sockfd);

2、int RecvUsrPswd(int sockfd,char *Usr,char *Pswd);

3、int LoginSev(int sockfd);

4、int MailService(int sockfd,char *Usr);

5、int SendMaillist(list sockfd,char *Usr);

6、int ReadMailSev(int sockfd);

7、int DelMailSev(int sockfd,char *Usr);

8、int SendMailSev(int sockfd,char *Usr);

B、客户端服务函数:

1、int RegisterCli(int sockfd);

2、int SendUsrPswd(int sockfd,char *Usr,char *Pswd);

3、int LoginCli(int sockfd);

4、int MailClient(int sockfd);

5、int ReadMailCli(int sockfd);

6、int DelMailCli(int sockfd);

7、int SendMailCli(int sockfd);

11、流程图:服务端与客户端




12、文件处理模块接口函数:

1、mail.h和usrpass.h头文件;(包含服务器邮件处理模块与用户信息管理模块)

2、6个接口函数:

a、int UsrStore(char *Usr,char *Pswd);

b、int TestPasd(char *Usr,char *Pswd);

c、int getmsgfrmdb(char *Usr);

d、int StoreMail(MailStruct *Mail)

e、int GetMail(int mail_no,char *buf);

f、int DelMail(int mail_no,char *Usr);

补充说明:

1、程序编译和启动:

a、服务器程序sevproc.c与文件处理模块.c文件与.h在同一目录;

b、shell下输入: gcc *.c -o sevprog 得到可执行文件sevprog;

c、shell下输入:./sevprog 启动服务器程序;

d、客户端程序cliprog.c在另一目录;

e、shell下输入:gcc cliprog.c -o cliprog 得到可执行文件cliprog;

f、在另一个虚拟终端输入:./cliprog 127.0.0.1 5500 启动客户程序;

2、运行状态:

附录:

服务器程序和客户端程序的源代码

#include<stdio.h>

#include<stdlib.h>

#include<errno.h>

#include<string.h>

#include<sys/types.h>

#include<netinet/in.h>

#

相关知识

C 语言基础第10
c语言入门求助
狗狗能吃维生素c吗
C语言的小问题
Go 语言教程
宠物商城系统的设计与开发(毕业论文第一、二章)
波奇学c:想自学c?不能错过的c基础知识
投资者提问:是否考虑开发宠物语言翻译,因为宠物是个千亿市场的规模
JAVA模式电子宠物系统的开发 app开发
宠物go语言 宠物语言转换器

网址: C语言开发邮件系统 https://m.mcbbbk.com/newsview234571.html

所属分类:萌宠日常
上一篇: 猫sdma正常值
下一篇: 问道怎么让宠物升级快啊