仿QQ聊天系统,基于C#的实现


基于C#的聊天软件的实现
资源截图
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using QQClass;
using System.IO;

namespace MyQQClient
{
    public partial class F_Chat : Form
    {
        public UDPSocket udpsocket;
        public ClassForms FormList;
        public bool Voiding;
        public bool SendViod;
        cVideo video;

        public F_Chat()
        {
            InitializeComponent();
        }

        private void button_Send_Click(object sender EventArgs e)
        {
            IPAddress ip = IPAddress.Parse(Publec_Class.ServerIP);//服务器端的IP地址
            string port = Publec_Class.ServerPort;//端口号
            string revid = ((this.Tag as TreeNode).Tag as ClassUserInfo).UserID;//接收ID号
            string sid = Publec_Class.UserID;//发送ID
            string msgid = Guid.NewGuid().ToString();//设置全局惟一标识

            byte[] data = Encoding.Unicode.GetBytes(rich_Input.Rtf);//将当前要发送的信息转换成二进制流
            ClassMsg msg = new ClassMsg();
            msg.sendKind = SendKind.SendMsg;//发送的消息
            msg.msgCommand = MsgCommand.SendToOne;//发送的是单用户信息
            msg.SID = sid;//发送ID
            msg.RID = revid;//接收ID
            msg.Data = data;//发送的信息
            msg.msgID = msgid;

            if (data.Length <= 1024)//如果发送信息的长度小于等于1024
            {
                msg.sendState = SendState.Single;
                //将信息直接发送给远程客户端
                udpsocket.Send(ip Convert.ToInt32(port) new ClassSerializers().SerializeBinary(msg).ToArray());
            }
            else
            {
                ClassMsg start = new ClassMsg();
                start.sendKind = SendKind.SendMsg;
                start.sendState = SendState.Start;//文件发送开始命令
                start.msgCommand = MsgCommand.SendToOne;//发送单用户命令
                start.SID = sid;
                start.RID = revid;
                start.Data = Encoding.Unicode.GetBytes(““);
                start.msgID = msgid;
                udpsocket.Send(ip Convert.ToInt32(port) new ClassSerializers().SerializeBinary(start).ToArray());
                MemoryStream stream = new MemoryStream(data);//将二进制流存储到内存流中
                int sendlen = 1024; //设置文件每块发送的长度
                long sunlen = (stream.Length);//整个文件的大小
                int offset = 0;//设置文件发送的起始位置
                while (sunlen > 0)  //分流发送
                {
                    sendlen = 1024;
                    if (sunlen <= sendlen)
                        sendlen = Convert.ToInt32(sunlen);
                    byte[] msgdata = new byte[sendlen];
                    stream.Read(msgdata offset sendlen);//读取要发送的字节块
                    msg.sendState = SendState.Sending;//发送状态为文件发送中
                    msg.Data = msgdata;
                    udpsocket.Send(ip Convert.ToInt32(port) new ClassSerializers().Ser

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-10-16 15:09  蓝精灵聊天系统
     目录           0  2016-10-16 15:09  蓝精灵聊天系统Smurf
     目录           0  2016-10-16 15:08  蓝精灵聊天系统SmurfDatabase
     文件     1048576  2011-03-30 14:58  蓝精灵聊天系统SmurfDatabasedb_MyQQ_Data.MDF
     文件     1048576  2011-03-30 14:58  蓝精灵聊天系统SmurfDatabasedb_MyQQ_Log.LDF
     文件        1879  2011-01-17 13:43  蓝精灵聊天系统SmurfMyQQ.sln
     文件       58880  2011-03-30 11:21  蓝精灵聊天系统SmurfMyQQ.suo
     目录           0  2016-10-16 15:08  蓝精灵聊天系统SmurfMyQQClient
     文件       13149  2011-02-14 14:51  蓝精灵聊天系统SmurfMyQQClientF_Chat.cs
     文件       29065  2009-04-27 14:51  蓝精灵聊天系统SmurfMyQQClientF_Chat.designer.cs
     文件      298304  2009-04-27 14:51  蓝精灵聊天系统SmurfMyQQClientF_Chat.resx
     文件       18592  2011-03-29 16:22  蓝精灵聊天系统SmurfMyQQClientF_Client.cs
     文件        7332  2011-03-29 16:22  蓝精灵聊天系统SmurfMyQQClientF_Client.designer.cs
     文件       84009  2011-03-29 16:22  蓝精灵聊天系统SmurfMyQQClientF_Client.resx
     文件        5882  2009-04-27 10:32  蓝精灵聊天系统SmurfMyQQClientF_Logon.cs
     文件        7333  2009-04-27 10:32  蓝精灵聊天系统SmurfMyQQClientF_Logon.designer.cs
     文件       84647  2009-04-27 10:32  蓝精灵聊天系统SmurfMyQQClientF_Logon.resx
     文件        3723  2009-04-24 11:40  蓝精灵聊天系统SmurfMyQQClientF_SerSetup.cs
     文件        9833  2009-04-24 11:40  蓝精灵聊天系统SmurfMyQQClientF_SerSetup.designer.cs
     文件        6012  2009-04-24 11:40  蓝精灵聊天系统SmurfMyQQClientF_SerSetup.resx
     目录           0  2016-10-16 15:08  蓝精灵聊天系统SmurfMyQQClientImage
     文件        1864  2009-04-24 10:44  蓝精灵聊天系统SmurfMyQQClientImage.bmp
     文件        2408  2009-04-24 10:45  蓝精灵聊天系统SmurfMyQQClientImage1.bmp
     文件       34686  2009-04-24 16:12  蓝精灵聊天系统SmurfMyQQClientImageQQ08.jpg
     文件       30369  2009-04-24 16:08  蓝精灵聊天系统SmurfMyQQClientImageQQ12.jpg
     文件       46786  2009-04-24 10:45  蓝精灵聊天系统SmurfMyQQClientImageQQ窗体_03.jpg
     文件       19080  2009-04-24 10:30  蓝精灵聊天系统SmurfMyQQClientImagemy-QQ_03.jpg
     文件       15109  2009-04-24 10:31  蓝精灵聊天系统SmurfMyQQClientImagemy-QQ_05.jpg
     文件       16679  2009-04-24 16:14  蓝精灵聊天系统SmurfMyQQClientImagemy-QQ_07.jpg
     文件       15569  2009-04-24 16:15  蓝精灵聊天系统SmurfMyQQClientImagemy-QQ_09.jpg
     文件       13520  2009-04-24 10:41  蓝精灵聊天系统SmurfMyQQClientImagemy-QQ_10.jpg
............此处省略93个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)