1.前言

      这是本系列的第四篇文章,上一篇我们讲到实现了客户端对客户端的抖屏与收发各种类型文件,本篇文章我们加入SQLServer数据库实现登录与好友的添加等功能,并对界面做了美化处理。向往常一样我会把聊天服务器部署到广域网服务器上,到时候大家就可以可以在源码里面打开客户端与我聊天啦!(这只是一个初级版功能简单不支持离线消息,所以聊天的前提是我在线(用户ID为19931221,就是我啦。)……),也可以自己打开两个客户端测试一下,程序的部署文档放在我的源码根目录下。

2.本篇实现功能

0. 数据库简单设计。

1. 服务端管理优化与界面美化。

2.客户端的登录,注册,找回密码。

3.客户端的欢迎界面搭建。

4.客户端的聊天界面搭建(核心)。

5.客户端的个人信息浮动展示。

6.客户端的添加好友。

7.客户端的用户头像修改。

8.个人详细信息操作。

9.好友的精确查找。

3.具体实现

(0) 数据库简单设计。

数据库表分为用户表,以及其他几个详细信息表,以及好友表。结构如下

Socket实现仿QQ聊天(可部署于广域网)附源码(4)-加入数据库系统搭建完成

在此基础上搭建了一个三层架构。实现对数据的增删改查。

(1)服务端管理优化与界面美化。

在原有的基础上添加了,数据管理,数据提交功能。实现对客户端的管理(一般数据库操作,这里就不贴代码啦,有兴趣可以下源码)。如图:

Socket实现仿QQ聊天(可部署于广域网)附源码(4)-加入数据库系统搭建完成

(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      }
View Code

相关文章:

  • 2021-06-25
  • 2021-12-09
  • 2021-09-05
  • 2021-10-11
  • 2021-08-04
  • 2021-08-30
  • 2022-01-11
  • 2022-01-06
猜你喜欢
  • 2021-07-30
  • 2021-06-06
  • 2021-04-06
  • 2021-10-27
  • 2021-06-04
相关资源
相似解决方案