internal static void ReopenChatWindows(bool settingchanged) { for (int i = 0; i < ChatWindows.Count; i++) { var tmp = ChatWindows[i].ChatPartners; if (settingchanged) { if (Storage.Settings[SettingType.ChatWindow] == "0") //Ha az új beállítás szerint(!) külön ablakokban kell megjeleníteni, akkor hajtsa végre { ((Form)ChatWindows[i].Parent.Parent).Close(); //Ezzel meghívja a saját Close()-ját is } else { ChatWindows[i].Close(); } } else { if (Storage.Settings[SettingType.ChatWindow] == "1") //Ha a régi beállítás szerint(!) külön ablakokban kell megjeleníteni, akkor hajtsa végre { ((Form)ChatWindows[i].Parent.Parent).Close(); //Ezzel meghívja a saját Close()-ját is } else { ChatWindows[i].Close(); } } var tmp2 = new ChatPanel(); tmp2.ChatPartners = tmp; tmp2.Init(); ChatWindows.Add(tmp2); } }
public static void ReloadLangs() { ChatPanel.ReopenChatWindows(false); ReloadEvent(null, null); Program.MainF.contactList.Items.Clear(); Program.MainF.LoadPartnerList(); }
/*public static byte[][] SendUpdate(UpdateType ut, byte[] data, bool response) - Opcionális paraméterre változtatva: 2014.12.22. * { //2014.11.22. * return SendUpdate(ut, data, response, null); * }*/ /*private static void CheckNPunchHole() //Még előtte tudja meg a belső portot * { //2014.11.22. * try * { * foreach (var item in UserInfo.IPs.Except(UserInfo.BannedIPs)) * { * if (Thread.CurrentThread == MainForm.MainThread) * { * SendUpdateInThread(UpdateType.CheckConn, new byte[] { }, new EventHandler<byte[][]>( * (e, resp) => * { * if (resp != null && resp.Length != 0 && ParsePacket(resp[0]).Data[0] == 0x01) * return; //Minden rendben, válaszolt * UserInfo.BannedIPs.Remove(item); //2014.12.19. * //if (Storage.Settings["isserver"] == "1") - Ha szerver, ha nem, kérje a többi szervert, hogy csatlakoztassa össze * resp = SendUpdate(UpdateType.RequestConn, Encoding.Unicode.GetBytes(item.ToString()), false); //Mindenkitől kéri, akivel van kapcsolata * if (resp != null && resp.Length != 0 && ParsePacket(resp[0]).Data[0] == 0x01) //2014.11.23. - Ilyenkor már tudnia kellene a portot, és hasonlókat * { * Networking.SendUpdate(UpdateType.MakeConn2, new byte[] { 0x01 }, false); //Elvileg akkor végez ez az utasítás, ha létrejött a kapcsolat, vagy letelt a határidő * } * } * ), item); * } * else * { * var resp = SendUpdate(UpdateType.CheckConn, new byte[] { }, false, item); * if (resp != null && resp.Length != 0 && ParsePacket(resp[0]).Data[0] == 0x01) * continue; //Minden rendben, válaszolt * UserInfo.BannedIPs.Remove(item); //2014.12.19. * //if (Storage.Settings["isserver"] == "1") - Ha szerver, ha nem, kérje a többi szervert, hogy csatlakoztassa össze * resp = SendUpdate(UpdateType.RequestConn, Encoding.Unicode.GetBytes(item.ToString()), false); //Mindenkitől kéri, akivel van kapcsolata * if (resp != null && resp.Length != 0 && ParsePacket(resp[0]).Data[0] == 0x01) //2014.11.23. - Ilyenkor már tudnia kellene a portot, és hasonlókat * { * Networking.SendUpdate(UpdateType.MakeConn2, new byte[] { 0x01 }, false); //Elvileg akkor végez ez az utasítás, ha létrejött a kapcsolat, vagy letelt a határidő * } * } * } * } * catch (InvalidOperationException) { } * }*/ public static bool SendChatMessage(ChatPanel chat, string message) { //2014.09.22. List <byte> bytes = new List <byte>(); string sendstr = ""; foreach (var pID in chat.ChatPartners) { sendstr += pID + ","; } bytes.AddRange(BitConverter.GetBytes(Encoding.Unicode.GetByteCount(sendstr))); bytes.AddRange(Encoding.Unicode.GetBytes(sendstr)); sendstr = message; //Átállítja a sendstr-t az üzenetre, majd újra belerakja bytes.AddRange(BitConverter.GetBytes(Encoding.Unicode.GetByteCount(sendstr))); bytes.AddRange(Encoding.Unicode.GetBytes(sendstr)); sendstr = Program.DateTimeToUnixTime(DateTime.Now); bytes.AddRange(BitConverter.GetBytes(Encoding.Unicode.GetByteCount(sendstr))); bytes.AddRange(Encoding.Unicode.GetBytes(sendstr)); byte[][] resp = SendUpdate(UpdateType.UpdateMessages, Encoding.Unicode.GetBytes(sendstr), false); if (resp == null || resp.Length == 0 || resp.All(bytesb => bytesb[0] != 0x01)) { return(false); } else //Ha válaszoltak, és senki sem válaszolt nem oké jelzéssel, akkor rendben van { return(true); } }
public static void OpenSendMessage(int uid) { var uinfo = UserInfo.Select(uid); //Üzenetküldő form int ChatNum = -1; for (int i = 0; i < ChatPanel.ChatWindows.Count; i++) { if (ChatPanel.ChatWindows[i].ChatPartners.Count == 1 && ChatPanel.ChatWindows[i].ChatPartners.Contains(uinfo)) { //Vele, és csak vele beszél ChatNum = i; break; } } if (ChatNum == -1) { //Nincs még chatablaka ChatPanel.Create(new UserInfo[1] { uinfo }); } else { ChatPanel.ChatWindows[ChatNum].Show(); ChatPanel.ChatWindows[ChatNum].Focus(); } }
public void PlaceChatIcon(ChatPanel cp) { var newicon = new PictureBox(); //newicon.ImageLocation = cp.ChatPartners[0].GetImage(); newicon.ImageLocation = cp.ChatPartners[0].ImagePath; //2014.12.31. newicon.Size = new Size(100, 100); newicon.SizeMode = PictureBoxSizeMode.Zoom; newicon.Click += new EventHandler((a, b) => cp.Show()); newicon.MouseClick += new MouseEventHandler((s, e) => { if (e.Button == MouseButtons.Middle) { cp.Close(); } else if (e.Button == MouseButtons.Right) //Chat menü { //2014.12.13. chatIconMenu.Tag = cp; chatIconMenu.Show(Cursor.Position); } }); cp.ChatIcon = newicon; //--------------------------------------------------------------------- int size = 0; bool putright = false; foreach (Control item in flowLayoutPanel1.Controls) { size += item.Size.Height; } size += newicon.Size.Height; if (size > flowLayoutPanel1.Size.Height) { putright = true; //Ha nem fér el bal oldalt, rakja jobbra } //--------------------------------------------------------------------- size = 0; foreach (Control item in flowLayoutPanel2.Controls) { size += item.Size.Height; } size += newicon.Size.Height; if (size > flowLayoutPanel2.Size.Height) { putright = false; //Ha jobbra sem fér el, csak rakja balra } //--------------------------------------------------------------------- if (!putright) { flowLayoutPanel1.Controls.Add(newicon); } else { flowLayoutPanel2.Controls.Add(newicon); } }
private void SelectPartner(object sender, EventArgs e) { var form = new SelectPartnerForm((ToolStripMenuItem)sender); DialogResult dr = form.ShowDialog(); if (dr == DialogResult.OK) { //2014.04.25. string[] partners = form.Partners; ChatPanel tmpchat = new ChatPanel(); for (int i = 0; i < partners.Length; i++) { if (partners[i] != "") //2014.04.17. { for (int j = 0; j < UserInfo.KnownUsers.Count; j++) { if (!UserInfo.KnownUsers[j].IsPartner) { continue; } int tmp; //2014.04.17. if (!Int32.TryParse(partners[i], out tmp)) { tmp = -1; } if (UserInfo.KnownUsers[j].UserName == partners[i] || UserInfo.KnownUsers[j].Email == partners[i] || UserInfo.KnownUsers[j].UserID == tmp) { //Egyezik a név, E-mail vagy ID - UserName: 2014.04.17. tmpchat.ChatPartners.Add(UserInfo.KnownUsers[j]); //2014.08.28. } } } } if (tmpchat.ChatPartners.Count != 0) { ChatPanel.ChatWindows.Add(tmpchat); if (sender == fájlKüldéseToolStripMenuItem) { //tmpchat.Show(); tmpchat.Init(); tmpchat.OpenSendFile(form); } if (sender == azonnaliÜzenetKüldéseToolStripMenuItem) { //tmpchat.Show(); tmpchat.Init(); } } } }
public static ChatPanel Create(IEnumerable <UserInfo> users) { //2015.05.15. ChatPanel cf = null; Program.MainF.Invoke(new Action(() => //Invoke: 2015.05.16. { ChatPanel.ChatWindows.Add(cf = new ChatPanel()); cf.ChatPartners.AddRange(users); if (cf.ChatPartners.Count > 1) //2015.05.23. - Így saját magunkkal is beszélhetünk... { cf.ChatPartners.RemoveAll(entry => entry.UserID == CurrentUser.UserID); //2015.05.16. } cf.Init(); })); return(cf); }
private void okbtn_Click(object sender, EventArgs e) { ApplyingSettings = true; CurrentUser.Name = nameText.Text; CurrentUser.Message = messageText.Text; bool reopen = false; if (chatwindow.Checked && Storage.Settings["chatwindow"] == "0") { reopen = true; Storage.Settings["chatwindow"] = "1"; } else if (!chatwindow.Checked && Storage.Settings["chatwindow"] == "1") { reopen = true; Storage.Settings["chatwindow"] = "0"; } //Storage.Settings["isserver"] = isserver.Checked ? "1" : "0"; //2014.11.15. string lang = "en"; if (listView1.SelectedItems.Count != 0) //2014.10.28. - Eddig valószínűleg hiba történt a SelectedItems[0]-nál { foreach (var lng in Language.UsedLangs) { if (lng.Value.Strings.ContainsKey("currentlang") && listView1.SelectedItems[0].Text == lng.Value.Strings["currentlang"]) { lang = lng.Key; break; } } if (Storage.Settings["lang"] != lang) { Storage.Settings["lang"] = lang; //MessageBox.Show(Language.Translate("restart_needed")); //Program.Restart(true); Language.ReloadLangs(); } } if (reopen) { ChatPanel.ReopenChatWindows(true); } ApplyingSettings = false; this.Close(); }
public static async Task <bool> SendChatMessage(ChatPanel chat, string message, double time) { //2014.09.22. var tmp1 = chat.ChatPartners.Select(entry => entry.UserID).ToArray(); int[] tmp2 = new int[tmp1.Length + 1]; tmp1.CopyTo(tmp2, 0); tmp2[tmp2.Length - 1] = CurrentUser.UserID; var resp = await new PacketSender(new PDUpdateMessages(tmp2, message, time)).SendAsync(); //2015.05.15. if (resp == null || resp.Length == 0 || resp.All(entry => !((PDUpdateMessages)entry.EData).RSuccess)) { return(false); } else //Ha válaszoltak, és senki sem válaszolt nem oké jelzéssel, akkor rendben van { return(true); } }
private void okbtn_Click(object sender, EventArgs e) { ApplyingSettings = true; bool reopen = false; foreach (SettingsPanel panel in ShownPanels) //2015.05.23. { if (panel.SaveSettings()) //2015.05.23. { reopen = true; //2015.05.23. } } if (reopen) { ChatPanel.ReopenChatWindows(true); Program.MainF.ChangeChatWindowLayout(true); //2015.06.14. } ApplyingSettings = false; this.Close(); }
public FloatingChatIcon(ChatPanel cp) { InitializeComponent(); }
public void Run() { while (MainForm.PartnerListUpdateThread != null && Program.MainThread.IsAlive) { do { PacketFormat pf; IPEndPoint remoteEP; if (!Networking.ReceiveUpdates(out pf, out remoteEP)) { break; } IPEndPoint SendBackEP = new IPEndPoint(remoteEP.Address, pf.Port); //2015.05.10. bool Break = false; switch (pf.PacketType) { case UpdateType.ListUpdate: { Networking.ParseUpdateInfo(new string[1][] { ((PDListUpdate)pf.EData).Strings }); new PacketSender(new PDListUpdate(true), pf.ID).Send(SendBackEP); break; } case UpdateType.LoginUser: { PDLoginUser data = (PDLoginUser)pf.EData; string tmpresp = Networking.SendRequest(Networking.RequestType.CheckUser, pf.EUserID.ToString(), 0, true); //2014.09.19. if (tmpresp == "Fail") { Break = true; break; //Nem küld el neki semmit, hanem újra várja a packet-eket } else if (tmpresp != "Success") { MessageBox.Show("LoginUser:\n" + tmpresp); Break = true; break; } if (!UserInfo.IPs.Any(entry => entry == SendBackEP)) { UserInfo.IPs.Add(SendBackEP); } List <string> strs = new List <string>(); foreach (var uinfo in data.UserInfos) { int uid = uinfo.Key; int updatetime = uinfo.Value; UserInfo user = UserInfo.Select(uid); if (user == null) { continue; } strs.Add(user.ToString()); //Egybe rakja felhasználónként, de amikor megkapja, ugyanúgy szétválogatja majd } new PacketSender(new PDLoginUser(strs.ToArray()), pf.ID).Send(SendBackEP); break; } case UpdateType.LogoutUser: { //2015.05.10. - Felesleges elküldenie az IP-címeket, mint a bejelentkezésnél UserInfo.Select(pf.EUserID).State = 0; new PacketSender(new PDLogoutUser(), pf.ID).Send(SendBackEP); break; } case UpdateType.GetImage: { PDGetImage data = (PDGetImage)pf.EData; UserInfo user = UserInfo.Select(data.UserID); bool success; byte[] imagedata; if (user.PicUpdateTime > data.PicUpdateTime) { success = true; var ms = new MemoryStream(); if (user.Image != null) { user.Image.Save(ms, ImageFormat.Tiff); //2015.05.30. imagedata = ms.ToArray(); //2015.05.30. } else { success = false; imagedata = new byte[0]; } } else { success = false; imagedata = new byte[0]; } new PacketSender(new PDGetImage(success, user.PicUpdateTime, imagedata), pf.ID).Send(SendBackEP); } break; case UpdateType.UpdateMessages: { PDUpdateMessages data = (PDUpdateMessages)pf.EData; bool success = true; var userinfos = data.Users.Select(entry => UserInfo.Select(entry)); //2015.06.16. if (userinfos.Except(UserInfo.KnownUsers.Where(entry => entry.IsPartner && entry.UserID != CurrentUser.UserID)).Count() == 0) { //2015.06.16. - Leellenőrzi, hogy van-e ismerőse a listában success = false; //2015.06.25. } else { ChatPanel cp = ChatPanel.GetChatPanelByUsers(userinfos); if (cp == null) //2015.05.16. { cp = ChatPanel.Create(data.Users.Select(entry => UserInfo.Select(entry))); //2015.05.16. } cp.ShowReceivedMessageT(UserInfo.Select(pf.EUserID), data.Message, data.Time); } new PacketSender(new PDUpdateMessages(success), pf.ID).Send(SendBackEP); } break; case UpdateType.SetKey: break; //TODO case UpdateType.SendImage: //2015.06.25. { PDSendImage data = (PDSendImage)pf.EData; bool success = true; var userinfos = data.Users.Select(entry => UserInfo.Select(entry)); if (userinfos.Except(UserInfo.KnownUsers.Where(entry => entry.IsPartner && entry.UserID != CurrentUser.UserID)).Count() == 0) { success = false; } ChatPanel cp = ChatPanel.GetChatPanelByUsers(userinfos); if (cp == null) { cp = ChatPanel.Create(data.Users.Select(entry => UserInfo.Select(entry))); } cp.ShowReceivedImageT(UserInfo.Select(pf.EUserID), data.Image, data.Time); new PacketSender(new PDSendImage(success), pf.ID).Send(SendBackEP); } break; case UpdateType.SendFile: //2015.06.30. { PDSendFile data = (PDSendFile)pf.EData; bool success = true; var userinfos = data.Users.Select(entry => UserInfo.Select(entry)); if (userinfos.Except(UserInfo.KnownUsers.Where(entry => entry.IsPartner && entry.UserID != CurrentUser.UserID)).Count() == 0) { success = false; } ChatPanel cp = ChatPanel.GetChatPanelByUsers(userinfos); if (cp == null) { cp = ChatPanel.Create(data.Users.Select(entry => UserInfo.Select(entry))); } long rprogress = cp.ShowReceivedFileT(UserInfo.Select(pf.EUserID), data.File, data.Time, data.Progress); new PacketSender(new PDSendFile(success, rprogress, CurrentUser.IPs, CurrentUser.Port), pf.ID).Send(SendBackEP); } break; default: //2015.06.25. throw new NotImplementedException("This type (" + pf.PacketType + ") is not handled in code."); //2015.06.25. } if (Break) { break; } } while (false); } }
public void Run() { while (MainForm.LThread != null && MainForm.MainThread.IsAlive) { do { object[] retobj = Networking.ReceiveUpdates(); if (retobj == null) //2014.12.05. { return; //2014.12.05. - Leállt a program } byte[] resp = (byte[])retobj[0]; //2014.10.24. IPEndPoint remoteEP = (IPEndPoint)retobj[1]; //2014.10.24. if (resp == null) { break; } byte isresponse; //2014.09.15. Networking.UpdateType updatetype; //2014.09.15. int keyversion; //2014.09.15. int port; //2014.12.19. int userid; //2014.09.15. byte[] data; //2014.09.15. Networking.ParsePacket(resp, out isresponse, out updatetype, out keyversion, out port, out userid, out data); //2014.09.15. //if (!UserInfo.IPs.Any(entry=>entry.IP==remoteEP) && updatetype != Networking.UpdateType.LoginUser) //2014.10.24. //if (!UserInfo.IPs.Any(entry => entry.IP == remoteEP) && updatetype != Networking.UpdateType.LoginUser) //2014.11.23 if (!UserInfo.IPs.Any(entry => entry.Address.Equals(remoteEP.Address)) && //2014.12.19. - A port nem ugyanaz, ráadásul a == nem hívja meg a .Equals metódust updatetype != Networking.UpdateType.LoginUser /*&& updatetype != Networking.UpdateType.CheckConn * && updatetype != Networking.UpdateType.RequestConn * && updatetype != Networking.UpdateType.MakeConn * && updatetype != Networking.UpdateType.MakeConn2*/) { break; } //bool x = UserInfo.IPs.Single().IP.Address.Equals(remoteEP.Address); if (updatetype == Networking.UpdateType.ListUpdate) { //Networking.ParseUpdateInfo(new byte[][] { data }); //2014.09.15. Networking.ParseUpdateInfo(new byte[][] { resp }); //2014.12.22. - A funkció az egész packet-re számít, nem csak a data-ra } else if (updatetype == Networking.UpdateType.UpdateMessages) { string[] response = Networking.GetStrings(data, 0); string[] tmp = response[0].Split(','); List <UserInfo> tmp2 = new List <UserInfo>(); tmp2.Add(UserInfo.Select(userid)); //Adja hozzá a küldőt is tmp2.AddRange(tmp.Select(entry => UserInfo.Select(Int32.Parse(entry)))); //2014.10.24. //if (tmp2.All(entry => !UserInfo.Select(entry).IsPartner)) //2014.10.24. if (tmp2.All(entry => !entry.IsPartner)) //2014.10.31. { break; //Ha a beszélgetésben nincs ismerőse, akkor nem foglalkozik vele } var cf = ChatPanel.GetChatFormByUsers(tmp2); if (cf == null) { Program.MainF.Invoke((MethodInvoker) delegate { ChatPanel.ChatWindows.Add(new ChatPanel()); cf = ChatPanel.ChatWindows[ChatPanel.ChatWindows.Count - 1]; cf.ChatPartners.AddRange(tmp2); cf.Init(); }); } //0 - Résztvevők; 1 - Üzenet; 2 - Üzenetküldés időpontja string[] cmd = response[1].Split(' '); switch (cmd[0]) { case "//sendfile": string[] ipportname = cmd[1].Split(':'); IPAddress ipAddr = IPAddress.Parse(ipportname[0]); var permission = new SocketPermission(NetworkAccess.Accept, TransportType.Tcp, "", SocketPermission.AllPorts); var ipEndPoint = new IPEndPoint(ipAddr, Int32.Parse(ipportname[1])); var receiverSock = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp); receiverSock.Connect(ipEndPoint); var ns = new NetworkStream(receiverSock); var fs = new FileStream(ipportname[2], FileMode.Create); break; } cf.TMessage = "\n" + ((userid == CurrentUser.UserID) ? CurrentUser.Name : UserInfo.Select(userid).Name) + " " + Language.Translate("said") + " (" + Program.UnixTimeToDateTime(response[2]).ToString("yyyy.MM.dd. HH:mm:ss") + "):\n" + response[1] + "\n"; Program.MainF.Invoke(new LoginForm.MyDelegate(cf.SetThreadValues)); } else if (updatetype == Networking.UpdateType.LoginUser) { string tmpresp = Networking.SendRequest("checkuser", userid.ToString(), 0, true); //2014.09.19. if (tmpresp == "Fail") { break; //Nem küld el neki semmit, hanem újra várja a packet-eket } else if (tmpresp != "Success") { MessageBox.Show("LoginUser:\n" + tmpresp); break; } //int iplen = BitConverter.ToInt32(data, 0); //string ip = Encoding.Unicode.GetString(data, 4, iplen); //IPAddress ip = IPAddress.Parse(Encoding.Unicode.GetString(data, 4, iplen)); /*if (!Storage.Settings["ips"].Contains(ip)) * Storage.Settings["ips"] += ";" + ip;*/ //var ep = new IPEndPoint(ip, UserInfo.GetPortForIP(ip)); //2014.11.15. //var ep = new IPEndPoint(ip, port); //2014.12.19. var ep = new IPEndPoint(remoteEP.Address, port); //if (!UserInfo.IPs.Any(entry=>entry.IP==ep)) if (!UserInfo.IPs.Any(entry => entry == ep)) { UserInfo.IPs.Add(ep); } string retstr = ""; //for (int i = 4 + iplen; i + 8 < resp.Length; i += 8) for (int i = 0; i + 8 < data.Length; i += 8) { int uid = BitConverter.ToInt32(data, i); int utime = BitConverter.ToInt32(data, i + 4); if (Storage.LoggedInSettings.ContainsKey("userinfo_" + uid + "_updatetime") && Int32.Parse(Storage.LoggedInSettings["userinfo_" + uid + "_updatetime"]) > utime) { retstr += uid + "_name=" + Storage.LoggedInSettings["userinfo_" + uid + "_name"] + "\n"; retstr += uid + "_message=" + Storage.LoggedInSettings["userinfo_" + uid + "_message"] + "\n"; retstr += uid + "_state=" + Storage.LoggedInSettings["userinfo_" + uid + "_state"] + "\n"; retstr += uid + "_username="******"userinfo_" + uid + "_username"] + "\n"; retstr += uid + "_email=" + Storage.LoggedInSettings["userinfo_" + uid + "_email"] + "\n"; retstr += uid + "_ispartner=" + Storage.LoggedInSettings["userinfo_" + uid + "_ispartner"] + "\n"; //retstr += uid + "_lastupdate=" + Program.DateTimeToUnixTime(DateTime.Now); if (uid != CurrentUser.UserID) //2014.11.29. { retstr += uid + "_lastupdate=" + Storage.LoggedInSettings["userinfo_" + uid + "_lastupdate"]; //2014.11.29. - Arra az időpontra állítsa, amikor ő kapta a frissítést, így ez elvileg az eredeti frissítés időpontját mutatja kb. - Ezért a sajátját biztosan frissen kell tartani } else { retstr += uid + "_lastupdate=" + Program.DateTimeToUnixTime(DateTime.Now); } //if (i + 1 != (resp.Length - 9) / 8) if (i + 16 < data.Length) { retstr += "\n"; } } } UserInfo.Select(userid).State = 1; Networking.SendUpdate(Networking.UpdateType.LoginUser, Encoding.Unicode.GetBytes(retstr), true); } else if (updatetype == Networking.UpdateType.LogoutUser) { //2014.08.31. 0:32 int len = BitConverter.ToInt32(data, 0); string ipstr = Encoding.Unicode.GetString(data, 4, len); //Storage.Settings["ips"] = Storage.Settings["ips"].Remove(Storage.Settings["ips"].IndexOf(ipstr), ipstr.Length); //2014.09.22. //var ip = IPAddress.Parse(ipstr); string[] ips = ipstr.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); var ip = ips.Select(entry => IPAddress.Parse(entry)); //UserInfo.IPs.RemoveWhere(entry => entry.IP.Address == ip && entry.IP.Port == UserInfo.GetPortForIP(entry.IP.Address)); //2014.11.15. UserInfo.IPs.RemoveWhere(entry => entry.Address == ip && entry.Port == port); //2014.11.15. - Port: 2014.12.19. } else if (updatetype == Networking.UpdateType.SetKey) //2014.09.09. { //2014.09.22. CurrentUser.KeyIndex = BitConverter.ToInt32(data, 0); } else if (updatetype == Networking.UpdateType.GetImage) //2014.11.01. 0:53 { string tmp = Path.GetTempPath(); List <byte> sendb = new List <byte>(); int user = BitConverter.ToInt32(data, 0); int picupdatetime = BitConverter.ToInt32(data, 4); //int thispicupdatetime = UserInfo.Select(user).PicUpdateTime; int thispicupdatetime = 0; UserInfo userinfo = UserInfo.Select(user); if (userinfo != null) { thispicupdatetime = UserInfo.Select(user).PicUpdateTime; } if (thispicupdatetime > picupdatetime) { sendb.AddRange(BitConverter.GetBytes(thispicupdatetime)); sendb.AddRange(File.ReadAllBytes(tmp + "\\MSGer.tk\\pictures\\" + user + ".png")); } Networking.SendUpdate(Networking.UpdateType.GetImage, sendb.ToArray(), true); //2014.11.23. } /*else if (updatetype == Networking.UpdateType.CheckConn) * { //2014.11.23. * Networking.SendUpdate(Networking.UpdateType.CheckConn, new byte[] { 0x01 }, true, new IPEndPoint(remoteEP.Address, port)); * } * else if (updatetype == Networking.UpdateType.RequestConn) * { //2014.11.23. * string[] s = Encoding.Unicode.GetString(data).Split(':'); * var secondEP = new IPEndPoint(IPAddress.Parse(s[0]), Int32.Parse(s[1])); * Networking.SendUpdate(Networking.UpdateType.MakeConn, Encoding.Unicode.GetBytes(secondEP.ToString()), false, remoteEP); //Elküldi, hogy próbálkozzon kapcsolódni * Networking.SendUpdate(Networking.UpdateType.RequestConn, new byte[] { 0x01 }, true); //Majd válaszol, hogy ő is próbálkozhat * } * else if (updatetype == Networking.UpdateType.MakeConn) * { //2014.11.23. * string[] s = Encoding.Unicode.GetString(data).Split(':'); * var secondEP = new IPEndPoint(IPAddress.Parse(s[0]), Int32.Parse(s[1])); * Networking.SendUpdate(Networking.UpdateType.MakeConn2, new byte[] { 0x01 }, false, secondEP); //Próbálkoziks * Networking.SendUpdate(Networking.UpdateType.MakeConn, new byte[] { 0x01 }, true); //Válaszol, hogy ne várjon rá a szerver * } * else if (updatetype == Networking.UpdateType.MakeConn2) * { //2014.11.23. * Networking.SendUpdate(Networking.UpdateType.MakeConn2, new byte[] { 0x01 }, true); //Végzett * }*/ } while (false); } }