1.前言
这是本系列的第四篇文章,上一篇我们讲到实现了客户端对客户端的抖屏与收发各种类型文件,本篇文章我们加入SQLServer数据库实现登录与好友的添加等功能,并对界面做了美化处理。向往常一样我会把聊天服务器部署到广域网服务器上,到时候大家就可以可以在源码里面打开客户端与我聊天啦!(这只是一个初级版功能简单不支持离线消息,所以聊天的前提是我在线(用户ID为19931221,就是我啦。)……),也可以自己打开两个客户端测试一下,程序的部署文档放在我的源码根目录下。
2.本篇实现功能
0. 数据库简单设计。
1. 服务端管理优化与界面美化。
2.客户端的登录,注册,找回密码。
3.客户端的欢迎界面搭建。
4.客户端的聊天界面搭建(核心)。
5.客户端的个人信息浮动展示。
6.客户端的添加好友。
7.客户端的用户头像修改。
8.个人详细信息操作。
9.好友的精确查找。
3.具体实现
(0) 数据库简单设计。
数据库表分为用户表,以及其他几个详细信息表,以及好友表。结构如下
在此基础上搭建了一个三层架构。实现对数据的增删改查。
(1)服务端管理优化与界面美化。
在原有的基础上添加了,数据管理,数据提交功能。实现对客户端的管理(一般数据库操作,这里就不贴代码啦,有兴趣可以下源码)。如图:
(2)客户端的登录,注册,找回密码。
a.登录-对用户名,密码,验证码验证。这里贴一段使用GDI+写的验证码(可以收藏一下,web ,winform通用),点击pictureBox进行验证图片切换。代码如下:
1 private void pictureBox3_Click(object sender, EventArgs e) 2 { 3 Random x = new Random(); 4 s= null; 5 for (int i = 0; i < 5; i++) 6 { 7 int num = x.Next(0, 10); 8 s += num; 9 } 10 //MessageBox.Show(s); 11 Bitmap bmap = new Bitmap(80, 30); 12 Graphics g = Graphics.FromImage(bmap); 13 for (int i = 0; i < 5; i++) 14 { 15 Point p = new Point(i * 13, 0); 16 string[] fonts = { "微软雅黑", "宋体", "黑体", "隶书", "仿宋" }; 17 Color[] colors = { Color.Black, Color.Blue, Color.Red, Color.Green, Color.Orange }; 18 g.DrawString(s[i].ToString(), new Font(fonts[x.Next(0, 5)], 20, FontStyle.Bold), new SolidBrush(colors[x.Next(0, 5)]), p); 19 20 } 21 for (int i = 0; i < 10; i++) 22 { 23 Pen pen = new Pen(Brushes.Gray); 24 Point p2 = new Point(x.Next(0, bmap.Width), x.Next(0, bmap.Height)); 25 Point p3 = new Point(x.Next(0, bmap.Width), x.Next(0, bmap.Height)); 26 g.DrawLine(pen, p2, p3); 27 } 28 for (int i = 0; i < 200; i++) 29 { 30 Point p1 = new Point(x.Next(0, bmap.Width), x.Next(0, bmap.Height)); 31 bmap.SetPixel(p1.X, p1.Y, Color.Green); 32 } 33 pictureBox3.Image = bmap; 34 }