注:本应用程序由团队完成,涉及专业技术知识,恕不公开源码,如果有需要源码学习的网友,请留言与我联系。

一、 使用步骤:

1、  服务器端开启(功能在最后介绍):运行程序程序ChatClient.exe;此时服务器端自动开启

加密聊天软件(功能文档)-编程知识网

说明:“信息”一栏中将显示用户聊天的一些信息,选择“管理”一栏,将会显示目前服务器上的所有用户信息,并且添加了更改端口、添加用户信息、删除用户、修改用户、查询等功能。如图:

加密聊天软件(功能文档)-编程知识网

2、  客户端登陆:运行程序ChatServer.exe,打开客户端登陆的窗口:

加密聊天软件(功能文档)-编程知识网

此时点击“用户登陆”按钮即可弹出登陆窗口如图:

加密聊天软件(功能文档)-编程知识网

这里既可以输入服务器的ip地址跟服务端口,输入用户的id与密码即可成功登陆。用户登陆之后实现了添加用户、用户查找、用户注册、删除好友等功能。

添加好友

客户端菜单栏点击“添加好友”,出现在服务器查找好友对话框,可以根据用户ID查找或者根据用户名查找

加密聊天软件(功能文档)-编程知识网

查找成功返回信息:

加密聊天软件(功能文档)-编程知识网

用户选择是否添加为自己好友以方便聊天。

限制同一ID在不同IP登录

当同一个ID同时在两个IP登录时,服务器会向先登录的用户发送异常登录消息,

加密聊天软件(功能文档)-编程知识网

选择重新登录,自己又重新上线。

修改自身信息:

加密聊天软件(功能文档)-编程知识网

注册用户:

 加密聊天软件(功能文档)-编程知识网

二、 聊天及文件传输实例演示:

我们假定服务器端的用户信息如图2,在用户10000(用户名为zhangsan)通过登陆界面登陆后如图左,另外一名用户12345(用户名为dingyong)登陆路后如图右

加密聊天软件(功能文档)-编程知识网   加密聊天软件(功能文档)-编程知识网                     

当zhangsan开始与dingyong聊天时,双击dingyong(或者“操作”->发送文本)可打开聊天窗口,在聊天时实现了以下功能:

1、  普通信息的发送、接收

2、  加密信息的发送、接收、解密

3、  普通文件的发送、接收

4、  加密文件的发送、接收、解密

对于要求的多行文本的发送该程序当中使用“Ctrl+Enter”实现换行。文件加密是选择文本,解密时选择相应的*.key文件。

加密聊天软件(功能文档)-编程知识网

选择好加密各个层次的编码方式,使用“Ctrl+Enter”实现换行,“发送”按钮即可将信息以加密的形式发送出去。实例“I love computer !”:

  加密聊天软件(功能文档)-编程知识网

如果发送方发送的字符串如下:

加密聊天软件(功能文档)-编程知识网

接收方与发送方的窗口布局相同,接收方未点击解密“设置”时:加密聊天软件(功能文档)-编程知识网(发送方未加密)加密聊天软件(功能文档)-编程知识网(发送方加密过后)注:这里未完全显示,实际运行时可以拖动查看

如果对方想对信息进行解密,点击“设置”按钮:

加密聊天软件(功能文档)-编程知识网

设置好解密方法后即可将发送方的加密密文以自己的解密方法解密出来。假如我们按照上面的加密方式解密,最终接收的字符串将会变为(大写变小写)i love computer !

加密聊天软件(功能文档)-编程知识网

调试输出的使用:

发送处输入内容后选择好自己想输出的加密方式,点击“测试”按钮即可跳出调试结果,如下:

加密聊天软件(功能文档)-编程知识网

离线信息的发送:

给对方发送离线信息后,如果对方不在线,对方上线后:将会提示:

加密聊天软件(功能文档)-编程知识网

选择“是”,将会跳出聊天信息:

加密聊天软件(功能文档)-编程知识网

 

以下是对文件发送接收的介绍:

1)普通文件的发送接收(这里实现了2M以下文件的离线发送,对应2M以上的文件实行在线用户之间发送):

加密聊天软件(功能文档)-编程知识网

离线文件发送后暂存在服务器端,当好友上线后会自动提示其是否接收:

加密聊天软件(功能文档)-编程知识网

如果选择接收,则会跳出服务器暂存文件列表:

加密聊天软件(功能文档)-编程知识网

选择要接收的文件,点击对话框下方的接收按钮,然后选择保存位置保存即可。

加密聊天软件(功能文档)-编程知识网

支持对自己发送文件及发送大型文件、多个文件同时发送:

文件的发送支持大型文件的发送,为了查看进度效果,这里对自己发送大型文件进行测试(给对方发送同样的效果):

发送方选择发送文件后,接收方首先接收到文件提示:

加密聊天软件(功能文档)-编程知识网

选择“接收”后将会显示接收的进度(这里发送接收为同一用户,故在一起):

加密聊天软件(功能文档)-编程知识网

2)加密文件的发送接收与解密

    当然这里限定加密之前必须为txt文档,点击“文件加密”按钮,选择要加密发送的文件,确定后提示输入加密的方式:

加密聊天软件(功能文档)-编程知识网

加密完成后文件会添加.key后缀,然后自动发送给对方。

对方接收到文件后如果想解密,点击“文件解密”按钮,输入自己想解密的算法代号,程序会自动解密,然后保存解密后的文件:

加密聊天软件(功能文档)-编程知识网

   实例说明:

假如要发送的加密文件为以下文件:

加密聊天软件(功能文档)-编程知识网

选择加密的方式为:edcba即:倒序-栅栏-键盘-手机-摩尔,加密后的文件内容:

加密聊天软件(功能文档)-编程知识网

接收端解密的文件如同发送端的文件。

注意:由于文件解密时存在算法的传入字符串的合法性问题,这里这样处理:对于摩尔解密判断是否全是0和1,如果不是提示“解密错误”,然后退出。对于手机解密,判断是否字符串中含有除数字和非字母的特殊字符以外的字符并且不全是0和1,如果符合则解密,否则不解密,提示“解密错误”。

对非法字符的处理

这里假如发送的的文件内容为:

加密聊天软件(功能文档)-编程知识网

这里定义第一行为0行,每行第一个字符为0号字符

加密聊天软件(功能文档)-编程知识网

三、 服务器端的功能:

信息记录:

服务器端的“信息栏”当中会记录聊天的所有信息:

加密聊天软件(功能文档)-编程知识网

显示用户登录ip:

加密聊天软件(功能文档)-编程知识网

端口更改设置:

加密聊天软件(功能文档)-编程知识网

相应的客户端会给出提醒:

加密聊天软件(功能文档)-编程知识网

离线文件和离线信息发送记录,当用户接受后会自动清除:

加密聊天软件(功能文档)-编程知识网

对暂存信息也添加了查找删除的功能:

加密聊天软件(功能文档)-编程知识网

点击“查询”,输入查询的用户:

加密聊天软件(功能文档)-编程知识网

删除单个、删除全部将删除相应项。

离线文件在服务器端的暂存(小于2M):

 加密聊天软件(功能文档)-编程知识网

四、注意事项:

1、运行时请首先运行服务器端,客户端方可登陆

2、服务器与客户端请在不同电脑上登录

3、编码限制在源码中已做限制了

4、单步调试请使用聊天窗口中的“第一层”设置好后,点击“调试”按钮即可输出调试结果。

 

说明:本文档仅供学习使用,如果设计中存在技术问题,欢迎高手指点,不胜感激!转载需注明,谢谢合作!