Exemplo n.º 1
0
        //发送确认信息
        public void YM_BeHandReceiveMessage(RichTextBox richTextBox)
        {
            try
            {
                //获取socket
                Socket receiveSocket = GetTcpSocket();
                //获取本地 ip port
                IPEndPoint mePoint = GetYouTcpPoint();
                //连接对方
                receiveSocket.Connect(mePoint);

                if (receiveSocket.Connected)
                {
                    //确认消息
                    byte[] dataRe2 = ClassSerializers.Serializebinary(Infolist).ToArray();
                    //发送确认消息
                    receiveSocket.Send(dataRe2, dataRe2.Length, SocketFlags.None);
                }
                receiveSocket.Close();
            }
            catch
            {
                return;
            }
        }
Exemplo n.º 2
0
        private void DataArrival(byte[] Data, IPAddress ip, int port)
        {
            ClassMsg msg = new ClassSerializers().DeSerializeBinary((new MemoryStream(Data))) as ClassMsg;

            switch (msg.sendKind)
            {
            case SendKind.SendCommand:
            {
                switch (msg.msgCommand)
                {
                case MsgCommand.Logining:
                    MessageBox.Show("登录失败,用户名密码错误!");
                    break;

                case MsgCommand.Logined:
                    User.user.UserID = Convert.ToInt16(msg.SID);
                    D_login();
                    udpSocket1.Active = false;
                    break;
                }

                break;
            }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 删除
        /// </summary>
        private void dbconn_delete_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("   您确定要删除连接细节吗?", "安全提示",
                                System.Windows.Forms.MessageBoxButtons.YesNo,
                                System.Windows.Forms.MessageBoxIcon.Question)
                == System.Windows.Forms.DialogResult.Yes)
            {
                if (getKeyExistsDics(dbconn_comb.Text.Trim()) == null)
                {
                    MessageBox.Show("       请选择一个希望被删除的数据源!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                DB_Map dbconn_delete = new DB_Map(this.dbconn_comb.Text.Trim(), this.dbconn_username.Text.Trim(),
                                                  this.dbconn_password.Text.Trim(), this.dbconn_ipaddr.Text.Trim(), Convert.ToInt32(this.dbconn_port.Text.Trim()), getKeyExistsDics(dbconn_comb.Text.Trim()).property, "否", Publec_Class.UserName);
                byte[]   dbconn_deleteData = new ClassSerializers().SerializeBinary(dbconn_delete).ToArray();
                ClassMsg msg = new ClassMsg();
                msg.sendKind   = SendKind.SendCommand;
                msg.msgCommand = MsgCommand.DBDelete;
                msg.SPort      = this.udpSocket1.LocalPort.ToString();
                msg.SIP        = PubClass.getMacAddr_Local(0);
                msg.Data       = dbconn_deleteData;

                udpSocket1.Send(IPAddress.Parse(PubClass.GetServerIp().Trim()), Convert.ToInt32(PubClass.GetServerPort().Trim()), new ClassSerializers().SerializeBinary(msg).ToArray());
            }
        }
Exemplo n.º 4
0
        //发送消息需要调用的函数
        private void TheServerThread()
        {
            try
            {
                //接受连接
                Socket sonS = TcpFileSocket.Accept();
                //将数据转换为byte[]
                byte[] dataSe = ClassSerializers.Serializebinary(Infolist).ToArray();
                //发送数据(文件)
                sonS.Send(dataSe, dataSe.Length, SocketFlags.None);
                //byte[]
                byte[] dataSe2 = new byte[2048];
                //接收信息 返回对方是否收到的信息
                sonS.Receive(dataSe2, dataSe2.Length, SocketFlags.None);

                List <Object> msg = ClassSerializers.DeSerializebinary(new MemoryStream(dataSe2)) as List <Object>;

                if (msg[4].ToString() == "ok")
                {
                    MessageBox.Show("--------ok-------");
                }
                else
                {
                    MessageBox.Show("--------Fail-------");
                }
            }
            catch
            {
                return;
            }
        }
Exemplo n.º 5
0
        private void DataArrival(byte[] Data, System.Net.IPAddress Ip, int Port) //当有数据到达后的处理进程
        {
            try
            {
                ClassMsg msg = new ClassSerializers().DeSerializeBinary((new System.IO.MemoryStream(Data))) as ClassMsg;

                switch (msg.msgCommand)
                {
                case MsgCommand.Registered:    //注册成功
                {
                    DialogResult = DialogResult.OK;
                    WritePrivateProfileString("MyGobang", "IP", serID, PubClass.Get_windows() + "\\Gobang.ini");
                    WritePrivateProfileString("MyGobang", "Port", text_IP5.Text.Trim(), PubClass.Get_windows() + "\\Gobang.ini");
                    WritePrivateProfileString("MyGobang", "Name", text_Name.Text.Trim(), PubClass.Get_windows() + "\\Gobang.ini");
                    WritePrivateProfileString("MyGobang", "Caput", comboBox_CPhoto.SelectedIndex.ToString(), PubClass.Get_windows() + "\\Gobang.ini");
                    udpSocket1.Active = false;
                    this.Close();
                    break;
                }

                case MsgCommand.RegisterAt:
                {
                    MessageBox.Show("用户名已被注册,请重新输入!");
                    text_Name.Text      = "";
                    text_PassWord.Text  = "";
                    text_PassWord2.Text = "";
                    break;
                }
                }
            }
            catch { }
        }
Exemplo n.º 6
0
        private void getprivileges_Click(object sender, EventArgs e)
        {
            //MessageBox.Show("       当前选择了:"+ dataGridView1_house.Rows[dataGridView1_house.CurrentRow.Index].Cells[0].Value , "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return;
            if (dataGridView1_house.Rows[dataGridView1_house.CurrentRow.Index].Cells[0].Value == null)
            {
                MessageBox.Show("       不能选择空行", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
            }
            PrivigesMsg pvMsg = new PrivigesMsg();

            pvMsg.UserName = Publec_Class.UserName;
            pvMsg.cover    = dataGridView1_house.Rows[dataGridView1_house.CurrentRow.Index].Cells[0].Value.ToString().Replace("(公司)", "");
            Publec_Class pc = new Publec_Class();

            byte[]   pvMsgData = new ClassSerializers().SerializeBinary(pvMsg).ToArray();
            ClassMsg msg       = new ClassMsg();

            msg.sendKind   = SendKind.SendCommand;
            msg.msgCommand = MsgCommand.DBPRIV;
            msg.SIP        = pc.getMacAddr_Local(0);
            msg.SPort      = this.udpSocket1.LocalPort.ToString();
            msg.Data       = pvMsgData;
            //打开socket,后台通信
            udpSocket1.Active = true;

            udpSocket1.Send(IPAddress.Parse(Publec_Class.ServerIP), Convert.ToInt32(Publec_Class.ServerPort), new ClassSerializers().SerializeBinary(msg).ToArray());
        }
Exemplo n.º 7
0
        private void button_login_click_Click(object sender, EventArgs e)
        {
            //输入参数处理
            if ((text_login_passwd.Text.Trim()).Length == 0)
            {
                MessageBox.Show("       用户密码不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return;
            }
            if (text_login_passwd.Text.Length < 6)
            {
                MessageBox.Show("       密码太短!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return;
            }

            //传送参数到后台校验
            RegisterMsg registermsg = new RegisterMsg();

            registermsg.UserName = text_login_name.Text.Trim();
            registermsg.PassWord = text_login_passwd.Text.Trim();
            byte[]   registerData = new ClassSerializers().SerializeBinary(registermsg).ToArray();
            ClassMsg msg          = new ClassMsg();

            msg.sendKind   = SendKind.SendCommand;
            msg.msgCommand = MsgCommand.Logining;
            msg.SPort      = this.udpSocket1.LocalPort.ToString();
            msg.SIP        = PubClass.getMacAddr_Local(0);
            msg.Data       = registerData;
            udpSocket1.Send(IPAddress.Parse(Publec_Class.ServerIP), Convert.ToInt32(Publec_Class.ServerPort), new ClassSerializers().SerializeBinary(msg).ToArray());
            Publec_Class.UserName = text_login_name.Text;
        }
Exemplo n.º 8
0
        /// <summary>
        /// 确定按键点击事件处理函数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (this.txtPassword.Text.Trim() == this.txtPasswordVerify.Text.Trim())
            {
                RegisterMsg registermsg = new RegisterMsg();
                registermsg.UserName = this.txtUserName.Text.Trim();
                registermsg.UserName = this.txtPassword.Text.Trim();

                byte[] registerData = new ClassSerializers().SerializeBinary(registermsg).ToArray();//将用户信息对象序列化后存入Data

                //定义消息
                ClassMsg msg = new ClassMsg();
                msg.sendKind   = SendKind.SendCommand;
                msg.msgCommand = MsgCommand.Registering;
                msg.Data       = registerData;

                byte[] send_data = new ClassSerializers().SerializeBinary(msg).ToArray();//消息对象序列化
                //发送
                udpSocket1.Send(IPAddress.Parse(this.txtServer.Text.Trim()), Convert.ToInt32(txtPort.Text.Trim()), send_data);
            }
            else
            {
                this.txtPassword.Text       = "";
                this.txtPasswordVerify.Text = "";
                MessageBox.Show("密码与确认密码不匹配,请重新输入。");
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// 当有数据到达后的处理进程
        /// </summary>
        /// <param name="Data"></param>
        /// <param name="ip"></param>
        /// <param name="port"></param>
        private void DataArrival(byte[] Data, IPAddress ip, int port)
        {
            try
            {
                ClassMsg msg = new ClassSerializers().DeSerializeBinary((new MemoryStream(Data))) as ClassMsg;
                switch (msg.sendKind)
                {
                case SendKind.SendCommand:      //命令
                {
                    switch (msg.msgCommand)
                    {
                    case MsgCommand.Registering:            //注册用户
                        RegisterUser(msg, ip, port);
                        break;

                    case MsgCommand.Logining:            //登录用户
                        UserLogin(msg, ip, port, 1);
                        break;

                    case MsgCommand.UserList:            //用户列表
                        SendUserList(msg, ip, port);
                        break;

                    case MsgCommand.GetFriendList:            //获取好友列表
                        SendFriendList(msg, ip, port);
                        break;

                    case MsgCommand.SendToOne:            //发送消息给单用户
                        SendUserMsg(msg, ip, port);
                        break;

                    case MsgCommand.Close:            //下线
                        UpdateUserState(msg, ip, port);
                        break;
                    }
                    break;
                }

                case SendKind.SendMsg:    //消息
                {
                    switch (msg.msgCommand)
                    {
                    case MsgCommand.SendToOne:            //发送消息给单用户
                        SendUserMsg(msg, ip, port);
                        break;
                    }
                    break;
                }

                case SendKind.SendFile:    //文件
                {
                    break;
                }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
Exemplo n.º 10
0
        private void DataArrival(byte[] Data, System.Net.IPAddress Ip, int Port) //当有数据到达后的处理进程
        {
            try
            {
                //RegisterMsg registermsg = (RegisterMsg)new ClassSerializers().DeSerializeBinary(new MemoryStream(msg.Data));

                ClassMsg msg = new ClassSerializers().DeSerializeBinary((new System.IO.MemoryStream(Data))) as ClassMsg;
                switch (msg.msgCommand)
                {
                case MsgCommand.DBList:
                    //DialogResult = DialogResult.OK;
                    mydics = (MyDictioinary <string, DB_Map>) new ClassSerializers().DeSerializeBinary(new MemoryStream(msg.Data));
                    //渲染数据库资源下拉按钮之前,保存列表字典到全局区
                    //全局变量重构//
                    //PublicValue.mydics = mydics;
                    SuperMessage.mydics = mydics;
                    //数据库列表展开
                    init2_views();
                    dbconn_comb.Items.Clear();
                    foreach (KeyValuePair <string, DB_Map> mydic in mydics.llDictionary)
                    {
                        if (mydic.Value.property == 0 && Publec_Class.UserName != mydic.Value.rguser)
                        {
                            continue;
                        }
                        if (mydic.Value.property == 1 && mydic.Value.ack == "否")
                        {
                            continue;
                        }
                        if (dbconn_comb.Text.Trim().Length > 0)
                        {
                            dbconn_comb.Items.Add(mydic.Key);
                        }
                        else
                        {
                            dbconn_comb.Items.Add(mydic.Key);
                            dbconn_comb.Text     = mydic.Key;
                            dbconn_ipaddr.Text   = mydic.Value.ipaddr;
                            dbconn_username.Text = mydic.Value.username;
                            dbconn_password.Text = mydic.Value.password;
                            dbconn_port.Text     = mydic.Value.port.ToString();
                        }
                        //Console.WriteLine("数据库列表测试:"+ mydic.Key.ToString() + "\t:" + mydic.Value.ToString());
                    }
                    PublicValue.dbname = dbconn_comb.Items[0].ToString();
                    init4_views();
                    break;

                case MsgCommand.DBCount:    //数据库资源为0
                    //没有数据库资源
                    //Console.WriteLine("没有数据库资源列表哦。。");
                    //初始化界面为0应该的样子
                    init_views();
                    break;
                }
            }
            catch { }
        }
Exemplo n.º 11
0
 private void SendMsgToOne(System.Net.IPAddress ip, int port, ClassMsg msg)//发送消息给一个用户
 {
     try
     {
         System.IO.MemoryStream stream = new ClassSerializers().SerializerBinary(msg);
         QQClass.UDPSocket      udp    = new QQClass.UDPSocket();
         udp.Send(ip, port, stream.ToArray());
     }
     catch { }
 }
Exemplo n.º 12
0
        /// <summary>
        /// 主动接收数据(文件)
        /// 0 代表 无错误
        /// 1 代表 SocketException
        /// 2 未知错误
        /// </summary>
        /// <param name="richTextBox"></param>
        /// <returns></returns>
        public int YM_ReceiveMessageAndSendOk(RichTextBox richTextBox)
        {
            try
            {
                //获取socket
                Socket receiveSocket = GetTcpSocket();
                //获取本地 ip port
                IPEndPoint youPoint = GetYouTcpPoint();
                //连接对方
                receiveSocket.Connect(youPoint);
                //用于存放信息
                byte[] dataRe = new byte[10240];

                if (receiveSocket.Connected)
                {
                    //接收消息
                    receiveSocket.Receive(dataRe, dataRe.Length, SocketFlags.None);
                    //提取信息
                    List <Object> listinfo = (ClassSerializers.DeSerializebinary(new MemoryStream(dataRe))) as List <Object>;
                    //显示信息
                    richTextBox.Invoke(
                        (MethodInvoker)
                        (() =>
                    {
                        richTextBox.AppendText(InfoTransToString(listinfo));
                        richTextBox.ScrollToCaret();
                        //存文件
                        SaveFile(listinfo);
                    }));
                    List <object> infolist = new List <object>();
                    infolist.Add("16");
                    infolist.Add(IpMe);
                    infolist.Add(PortMe);
                    infolist.Add(DateTime.Now.ToString());
                    infolist.Add("ok");
                    //确认消息
                    byte[] dataRe2 = ClassSerializers.Serializebinary(infolist).ToArray();
                    //发送确认消息
                    receiveSocket.Send(dataRe2, dataRe2.Length, SocketFlags.None);
                }
                //receiveSocket.Close();
                return(0);
            }
            catch (Exception e)
            {
                if (e is SocketException)
                {
                    return(1);
                }
                else
                {
                    return(2);
                }
            }
        }
Exemplo n.º 13
0
 private void SendMsgToOne(IPAddress ip, int port, ClassMsg msg)
 {
     try
     {
         MemoryStream stream = new ClassSerializers().SerializeBinary(msg);
         UDPSocket    udp    = new UDPSocket();
         udp.Send(ip, port, stream.ToArray());
     }
     catch
     { }
 }
Exemplo n.º 14
0
        private void DataArrival(byte[] Data, System.Net.IPAddress Ip, int Port) //当有数据到达后的处理进程
        {
            try
            {
                ClassMsg msg = new ClassSerializers().DeSerializeBinary((new System.IO.MemoryStream(Data))) as ClassMsg;
                switch (msg.msgCommand)
                {
                case MsgCommand.TaskList:
                    //DialogResult = DialogResult.OK;
                    mytasks = (MyDictioinary <string, DB_Task>) new ClassSerializers().DeSerializeBinary(new MemoryStream(msg.Data));
                    //渲染数据
                    SuperMessage.mytasks = mytasks;
                    //数据库任务列表
                    this.splitContainer1.Visible = true;
                    this.treeView1.Nodes.Clear();
                    TreeNode datasync = new TreeNode("数据同步");    //mytask.Value.TaskName

                    foreach (KeyValuePair <string, DB_Task> mytask in mytasks.llDictionary)
                    {
                        //var synctask = datasync.Nodes.Add(mytask.Value.TaskName);
                        //如果还有子任务则:参考:https://blog.csdn.net/laoyezha/article/details/79302679
                        //    pointer = synctask.Nodes.Add("一人之下");
                        datasync.Nodes.Add(mytask.Value.TaskName);
                    }
                    this.treeView1.Nodes.Add(datasync);

                    break;

                case MsgCommand.DBTaskCount:    //数据库资源为0
                    //0任务列表,不做显示
                    //初始化界面为0应该的样子
                    this.splitContainer1.Visible = false;

                    break;

                case MsgCommand.DBList:
                    //DialogResult = DialogResult.OK;
                    mydics = (MyDictioinary <string, DB_Map>) new ClassSerializers().DeSerializeBinary(new MemoryStream(msg.Data));
                    //渲染数据库资源下拉按钮之前,保存列表字典到全局区
                    //全局变量重构//
                    //PublicValue.mydics = mydics;
                    SuperMessage.mydics = mydics;

                    break;

                case MsgCommand.DBCount:    //数据库资源为0

                    break;
                }
            }
            catch { }
        }
Exemplo n.º 15
0
 private void SendMsgToAll(ClassMsg msg)//发送消息给所有用户
 {
     try
     {
         foreach (System.Windows.Forms.ListViewItem item in this.LV_SysUser.Items)
         {
             System.Net.IPAddress ip = System.Net.IPAddress.Parse(item.SubItems[1].Text);
             int port = Convert.ToInt32(item.SubItems[2].Text);
             System.IO.MemoryStream stream = new ClassSerializers().SerializerBinary(msg);
             QQClass.UDPSocket      udp    = new QQClass.UDPSocket();
             udp.Send(ip, port, stream.ToArray());
         }
     }
     catch { }
 }
Exemplo n.º 16
0
        private void button_regist_click_Click(object sender, EventArgs e)
        {
            if (text_regist_password.Text.Length < 6)
            {
                MessageBox.Show("       密码太短!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return;
            }
            if (!Publec_Class.IsMail(text_regist_mail.Text.Trim()))
            {
                MessageBox.Show("       邮箱不正确!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return;
            }
            if (!Publec_Class.IsPhone(text_regist_phone.Text.Trim()))
            {
                MessageBox.Show("       电话号不正确!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return;
            }
            if ((text_regist_password.Text.Trim()).Length == 0)
            {
                MessageBox.Show("       用户密码不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else
            {
                if (text_regist_password.Text.Trim() == text_regist_ack_password.Text.Trim())    //当密码输入相同
                {
                    RegisterMsg registermsg = new RegisterMsg();
                    registermsg.UserName = text_regist_name.Text;
                    registermsg.PassWord = text_regist_password.Text;
                    registermsg.phone    = text_regist_phone.Text.Trim();
                    registermsg.mail     = text_regist_mail.Text.Trim();
                    registermsg.MacAddr  = PubClass.getMacAddr_Local(1).Trim();
                    byte[]   registerData = new ClassSerializers().SerializeBinary(registermsg).ToArray();
                    ClassMsg msg          = new ClassMsg();
                    msg.sendKind   = SendKind.SendCommand;
                    msg.msgCommand = MsgCommand.Registering;
                    msg.SPort      = this.udpSocket1.LocalPort.ToString();
                    msg.SIP        = PubClass.getMacAddr_Local(0);
                    msg.Data       = registerData;
                    msg.Suser      = text_regist_name.Text;
                    serID          = PubClass.GetServerIp().Trim();

                    udpSocket1.Send(IPAddress.Parse(serID), Convert.ToInt32(PubClass.GetServerPort().Trim()), new ClassSerializers().SerializeBinary(msg).ToArray());
                }
                else
                {
                    text_regist_password.Text     = "";
                    text_regist_ack_password.Text = "";
                    MessageBox.Show("       输入的密码不匹配,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
        }
Exemplo n.º 17
0
        private void DataArrival(byte[] Data, System.Net.IPAddress Ip, int Port) //当有数据到达后的处理进程
        {
            try
            {
                ClassMsg msg = new ClassSerializers().DeSerializerBinary((new System.IO.MemoryStream(Data))) as ClassMsg;

                switch (msg.msgCommand)
                {
                case MsgCommand.Logined:    //登录成功
                    Publec_Class.UserID = msg.SID;
                    DialogResult        = DialogResult.OK;
                    break;
                }
            }
            catch { }
        }
Exemplo n.º 18
0
 /// <summary>
 /// 发送信息给所有用户
 /// </summary>
 /// <param name="msg"></param>
 private void SendMsgToAll(ClassMsg msg)
 {
     try
     {
         foreach (ListViewItem item in this.LV_SysUser.Items)
         {
             IPAddress    ip     = IPAddress.Parse(item.SubItems[1].Text);
             int          port   = Convert.ToInt32(item.SubItems[2].Text);
             MemoryStream stream = new ClassSerializers().SerializeBinary(msg);
             UDPSocket    udp    = new UDPSocket();
             udp.Send(ip, port, stream.ToArray());
         }
     }
     catch
     { }
 }
Exemplo n.º 19
0
 private void DataArrival(byte[] Data, System.Net.IPAddress IP, int Port)
 {
     try
     {
         ClassMsg msg = new ClassSerializers().DeSerializerBinary((new System.IO.MemoryStream(Data))) as ClassMsg;
         switch (msg.msgCommand)
         {
         case MsgCommand.Registered:
             DialogResult = DialogResult.OK;
             WritePrivateProfileString("MyQQ", "ID", serID, PubClass.Get_windows() + "\\Server.ini");
             WritePrivateProfileString("MyQQ", "Port", text_IP5.Text.Trim(), PubClass.Get_windows() + "\\Server.ini");
             WritePrivateProfileString("MyQQ", "Name", text_Name.Text.Trim(), PubClass.Get_windows() + "\\Server.ini");
             break;
         }
     }
     catch { }
 }
Exemplo n.º 20
0
        private void frmChat_Load(object sender, EventArgs e)
        {
            UserBLL udb = new UserBLL();
            //聊天对象信息表
            DataTable dt = new DataTable();
            //用户好友列表
            DataTable dt1 = new DataTable();
            //用户信息表
            DataTable dt2 = new DataTable();

            dt              = udb.Userinfo(ChatUserID);
            dt1             = udb.GetFriendShipInfo(udb.user.UserID.ToString(), ChatUserID.ToString());
            dt2             = udb.Userinfo(udb.user.UserID);
            Text            = "与" + dt1.Rows[0]["AlternateName"] + "聊天中";
            FriendName.Text = dt1.Rows[0]["AlternateName"].ToString();
            UserName.Text   = dt2.Rows[0]["UserNickName"].ToString();
            if (string.IsNullOrEmpty(dt.Rows[0]["HeadPicture"].ToString()))
            {
                FriendHead.ImageLocation = s + "\\search_teacher.jpg";
            }
            else
            {
                FriendHead.ImageLocation = dt.Rows[0]["HeadPicture"].ToString();
            }
            if (string.IsNullOrEmpty(dt2.Rows[0]["HeadPicture"].ToString()))
            {
                UserHead.ImageLocation = s + "\\search_teacher.jpg";
            }
            else
            {
                UserHead.ImageLocation = dt2.Rows[0]["HeadPicture"].ToString();
            }
            hostname = Dns.GetHostName();
            IPAddress[] ip        = Dns.GetHostAddresses(hostname);
            RegisterMsg registmsg = new RegisterMsg();
            ClassMsg    msg       = new ClassMsg();

            registmsg.UserName = "******";
            registmsg.PassWord = "******";
            byte[] registdata = new ClassSerializers().SerializeBinary(registmsg).ToArray();
            msg.sendKind   = SendKind.SendCommand;
            msg.msgCommand = MsgCommand.Registering;
            msg.Data       = registdata;
            serID          = "192.168.1.187";
            udpSocket1.Send(IPAddress.Parse(serID), 11000, new ClassSerializers().SerializeBinary(msg).ToArray());
        }
Exemplo n.º 21
0
        /// <summary>
        /// 主动接收数据(文件)
        /// 0 代表 无错误
        /// 1 代表 SocketException
        /// 2 未知错误
        /// </summary>
        /// <param name="richTextBox"></param>
        /// <returns></returns>
        public int YM_ReceiveMessage(RichTextBox richTextBox)
        {
            try
            {
                //获取socket
                Socket receiveSocket = GetTcpSocket();
                //获取本地 ip port
                IPEndPoint mePoint = GetYouTcpPoint();
                //连接对方
                receiveSocket.Connect(mePoint);
                //用于存放信息
                byte[] dataRe = new byte[10240];

                if (receiveSocket.Connected)
                {
                    //接收消息
                    receiveSocket.Receive(dataRe, dataRe.Length, SocketFlags.None);
                    //提取信息
                    List <Object> listinfo = (ClassSerializers.DeSerializebinary(new MemoryStream(dataRe))) as List <Object>;
                    //显示信息
                    richTextBox.Invoke(
                        (MethodInvoker)
                        (() =>
                    {
                        richTextBox.AppendText(InfoTransToString(listinfo));
                        richTextBox.ScrollToCaret();
                        //存文件
                        SaveFile(listinfo);
                    }));
                }
                receiveSocket.Close();
                return(0);
            }
            catch (Exception e)
            {
                if (e is SocketException)
                {
                    return(1);
                }
                else
                {
                    return(2);
                }
            }
        }
Exemplo n.º 22
0
 private void DataArrival(byte[] Data, System.Net.IPAddress Ip, int Port) //当有数据到达后的处理进程
 {
     try
     {
         ClassMsg msg = new ClassSerializers().DeSerializeBinary((new System.IO.MemoryStream(Data))) as ClassMsg;
         switch (msg.msgCommand)
         {
         case MsgCommand.Logined:    //登录成功
             //Publec_Class.UserID = msg.SID;
             DialogResult = DialogResult.OK;
             //udpSocket1.Active = false;
             break;
         }
     }
     catch (Exception e) {
         Console.WriteLine("---------err-3");
     }
 }
Exemplo n.º 23
0
 private void button_QQLogon_Click(object sender, EventArgs e)
 {
     if (Publec_Class.ServerIP != "" && Publec_Class.ServerPort != "")
     {
         RegisterMsg registermsg = new RegisterMsg();
         registermsg.UserName = text_Name.Text.Trim(); //记录用户名
         registermsg.PassWord = text_PassWord.Text;    //记录密码
         //调用ClassSerializers().SerializerBinary()方法将registermsg序列化为二进制流
         byte[]   registerData = new ClassSerializers().SerializerBinary(registermsg).ToArray();
         ClassMsg msg          = new ClassMsg();
         msg.sendKind   = SendKind.SendCommand; //设置为发送命令
         msg.msgCommand = MsgCommand.Logining;  //消息命令设置为用户登录
         msg.Data       = registerData;         //将二进制流存储到类库中的二进制变量Data中
         //用udpSocket控件的Send方法将消息发送给服务器
         udpSocket1.Send(IPAddress.Parse(Publec_Class.ServerIP), Convert.ToInt32(Publec_Class.ServerPort), new ClassSerializers().SerializerBinary(msg).ToArray());
         Publec_Class.UserName = text_Name.Text;
     }
 }
Exemplo n.º 24
0
        /// <summary>
        /// 保存
        /// </summary>
        private void dbconn_save_Click(object sender, EventArgs e)
        {
            Int32  pro_tmp    = 1;
            DB_Map db_pro_tmp = null;

            //全局变量重构//
            //if (PublicValue.mydics.llDictionary.Count > 0)
            if (SuperMessage.mydics.llDictionary.Count > 0)
            {
                if (PublicValue.old_dbname != null)
                {
                    db_pro_tmp             = getKeyExistsDics(PublicValue.old_dbname);
                    PublicValue.old_dbname = "";
                }
                else
                {
                    db_pro_tmp = getKeyExistsDics(dbconn_comb.Text.Trim());
                }
                if (db_pro_tmp == null)
                {
                    pro_tmp = 0;
                }
                else
                {
                    pro_tmp = 0;
                    //bug  ing
                    //MessageBox.Show("       名字冲突,请重新填写一个连接名称!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    //return;
                }
            }
            DB_Map dbconn_save = new DB_Map(dbconn_comb.Text.Trim(), dbconn_username.Text.Trim(), dbconn_password.Text.Trim(),
                                            dbconn_ipaddr.Text.Trim(), Convert.ToInt32(dbconn_port.Text.Trim()), pro_tmp, "否", Publec_Class.UserName);

            byte[]   dbconn_saveData = new ClassSerializers().SerializeBinary(dbconn_save).ToArray();
            ClassMsg msg             = new ClassMsg();

            msg.sendKind   = SendKind.SendCommand;
            msg.msgCommand = MsgCommand.DBSave;
            msg.SPort      = this.udpSocket1.LocalPort.ToString();
            msg.SIP        = PubClass.getMacAddr_Local(0);
            msg.Data       = dbconn_saveData;

            udpSocket1.Send(IPAddress.Parse(PubClass.GetServerIp().Trim()), Convert.ToInt32(PubClass.GetServerPort().Trim()), new ClassSerializers().SerializeBinary(msg).ToArray());
        }
Exemplo n.º 25
0
 /// <summary>
 /// 被子线程DataArrival事件处理函数发送到控件线程异步执行的函数
 /// </summary>
 /// <param name="Data">接收的字节数组</param>
 /// <param name="Ip">远程主机的IP地址</param>
 /// <param name="Port">远程主机的端口</param>
 private void DataArrival(byte[] Data, IPAddress Ip, int Port)
 {
     try
     {
         //将接收的字节数组反序列化
         ClassMsg msg = new ClassSerializers().DeSerializeBinary(new System.IO.MemoryStream(Data)) as ClassMsg;
         switch (msg.msgCommand)
         {
         case MsgCommand.Registered:                                                                                                   //注册成功
             DialogResult = DialogResult.OK;                                                                                           //设置注册窗口对话框结果属性
             WritePrivateProfileString("MyQQ", "ID", this.txtServer.Text.Trim(), Public_Class.Get_windows() + @"\MyQQServer.ini");     //向INI文件写入ID键值对
             WritePrivateProfileString("MyQQ", "Port", this.txtPort.Text.Trim(), Public_Class.Get_windows() + @"\MyQQServer.ini");     //向INI文件写入Port键值对
             WritePrivateProfileString("MyQQ", "Name", this.txtUserName.Text.Trim(), Public_Class.Get_windows() + @"\MyQQServer.ini"); //向INI文件写入Name键值对
             break;
         }
     }
     catch
     { }
 }
Exemplo n.º 26
0
        private void butSave_Click(object sender, EventArgs e)
        {
            List <string> StdNames = new List <string>();

            if (NamesView.Rows.Count > 1)
            {
                for (int i = 0; i < NamesView.Rows.Count - 1; i++)
                {
                    StdNames.Add(NamesView.Rows[i].Cells[0].Value.ToString());
                }
                if (!string.IsNullOrEmpty(tboxfilename.Text.Trim()))
                {
                    string file = tboxfilename.Text.Trim() + ".txt";
                    if (File.Exists(@"StdSystem\" + tboxfilename.Text.Trim() + ".dat"))
                    {
                        if (MessageBox.Show("文件已存在,是否覆盖?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
                        {
                            FilesOper        fo = new FilesOper();
                            ClassSerializers cs = new ClassSerializers();
                            fo.Save(@"StdSystem\" + tboxfilename.Text.Trim() + ".dat", cs.SerializeBinary(StdNames));
                            MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            GetFileDb();
                        }
                    }
                    else
                    {
                        FilesOper        fo = new FilesOper();
                        ClassSerializers cs = new ClassSerializers();
                        fo.Save(@"StdSystem\" + tboxfilename.Text.Trim() + ".dat", cs.SerializeBinary(StdNames));
                        MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        GetFileDb();
                    }
                }
                else
                {
                    MessageBox.Show("文件名为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                MessageBox.Show("没有数据记录!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Exemplo n.º 27
0
        private void DataArrival(byte[] Data, IPAddress ip, int port)
        {
            ClassMsg msg = new ClassSerializers().DeSerializeBinary((new MemoryStream(Data))) as ClassMsg;

            switch (msg.sendKind)
            {
            case SendKind.SendCommand:
            {
                switch (msg.msgCommand)
                {
                case MsgCommand.GetFriendList:
                    ShowFriendList(msg);
                    break;
                }

                break;
            }
            }
        }
Exemplo n.º 28
0
        private void init_dblist()
        {
            Publec_Class pc          = new Publec_Class();
            RegisterMsg  registermsg = new RegisterMsg();

            registermsg.name = this.dbconn_comb.Text.Trim();
            byte[]   registerData = new ClassSerializers().SerializeBinary(registermsg).ToArray();
            ClassMsg msg          = new ClassMsg();

            msg.sendKind   = SendKind.SendCommand;
            msg.msgCommand = MsgCommand.DBList;
            msg.SIP        = pc.getMacAddr_Local(0);
            msg.SPort      = this.udpSocket1.LocalPort.ToString();
            msg.Data       = registerData;
            msg.Suser      = Publec_Class.UserName;
            //打开socket,后台通信
            udpSocket1.Active = true;

            udpSocket1.Send(IPAddress.Parse(Publec_Class.ServerIP), Convert.ToInt32(Publec_Class.ServerPort), new ClassSerializers().SerializeBinary(msg).ToArray());
        }
Exemplo n.º 29
0
        private void DataArrival(byte[] Data, IPAddress Ip, int Port) //当有数据到达后的处理进程
        {
            Publec_Class Pub_class = new Publec_Class();

            try
            {
                ClassMsg msg = new ClassSerializers().DeSerializeBinary((new System.IO.MemoryStream(Data))) as ClassMsg;
                switch (msg.msgCommand)
                {
                case  MsgCommand.Logined:    //登录成功
                    Publec_Class.UserID   = msg.SID;
                    Publec_Class.Fraction = msg.Fraction;
                    Publec_Class.UserSex  = msg.Sex;
                    Publec_Class.ClientIP = Pub_class.MyHostIP();    //获取当前计算机的IP地址
                    DialogResult          = DialogResult.OK;
                    udpSocket1.Active     = false;
                    this.Close();
                    break;
                }
            }
            catch { }
        }
Exemplo n.º 30
0
        /// <summary>
        /// 登录函数
        /// </summary>
        private void login_()
        {
            string hostname = string.Empty;
            string serID    = string.Empty;

            User.user.UserName  = Username_textbox.Text;
            User.user.PassWord1 = Password_textbox.Text;
            //string[] sMessage = { "", "" };
            //bSuccess = User.Login(User.user.UserName, User.user.PassWord1, ref sMessage);
            //if (bSuccess)
            //{
            #region 发送登录消息
            //向服务器发送登录消息
            hostname = Dns.GetHostName();
            //IPAddress[] ip = Dns.GetHostAddresses(hostname);
            LoginMsg loginmsg = new LoginMsg();
            //RegisterMsg registmsg = new RegisterMsg();
            ClassMsg msg = new ClassMsg();
            //registmsg.UserName = Username_textbox.Text;
            //registmsg.PassWord = Password_textbox.Text;
            loginmsg.UserName = Username_textbox.Text;
            loginmsg.PassWord = Password_textbox.Text;
            byte[] logindata = new ClassSerializers().SerializeBinary(loginmsg).ToArray();
            msg.sendKind   = SendKind.SendCommand;
            msg.msgCommand = MsgCommand.Logining;
            msg.Data       = logindata;
            serID          = "192.168.1.187";        //服务器IP
            udpSocket1.Send(IPAddress.Parse(serID), 11001, new ClassSerializers().SerializeBinary(msg).ToArray());
            #endregion

            //}
            //else
            //{
            //    if (!string.IsNullOrEmpty(sMessage[0]))
            //        MessageBox.Show(sMessage[0]);
            //    else
            //        MessageBox.Show(sMessage[1]);
            //}
        }