//发送确认信息 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; } }
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; } } }
/// <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()); } }
//发送消息需要调用的函数 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; } }
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 { } }
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()); }
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; }
/// <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("密码与确认密码不匹配,请重新输入。"); } }
/// <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); } }
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 { } }
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 { } }
/// <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); } } }
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 { } }
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 { } }
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 { } }
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); } } }
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 { } }
/// <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 { } }
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 { } }
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()); }
/// <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); } } }
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"); } }
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; } }
/// <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()); }
/// <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 { } }
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); } }
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; } } }
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()); }
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 { } }
/// <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]); //} }