public void SetOnlineState(object sender, EventArgs e) { int state = 0; if (sender == elérhetőToolStripMenuItem) { state = 1; } if (sender == elfoglaltToolStripMenuItem) { state = 2; } if (sender == nincsAGépnélToolStripMenuItem) { state = 3; } if (sender == null) //2014.08.30. - Erre nagyon sokáig nem volt felkészítve, és ezt kihasználtam a kijelentkezéshez { string resp = Networking.SendRequest(Networking.RequestType.SetState, 0 + "", 0, true); if (resp.Contains("Fail")) //2015.06.04. { new ErrorHandler(ErrorType.ServerError, new Exception(resp)); //2015.06.04. } new Networking.PacketSender(new Networking.PDLogoutUser()).SendAsync().ContinueWith((t) => { CurrentUser.SendChanges = false; //2014.12.31. CurrentUser.State = state; //2014.08.28. }); } else //else: 2015.04.03. { CurrentUser.State = state; //2014.08.28. } }
public void RefreshList() { listBox1.Items.Clear(); string[] response = Networking.SendRequest("getcodes", "", 0, true).Split('ͦ'); int x = 0; for (int i = 0; i + 1 < response.Length; i += 2) { if (Int32.Parse(response[i + 1]) == 1) { if (!hideAccepted.Checked) { listBox1.Items.Add("Elfogadott - " + response[i]); } } else if (Int32.Parse(response[i + 1]) == 0) { listBox1.Items.Add("Visszaigazolásra vár - " + response[i]); } else { MessageBox.Show("Hiba:\n" + response[i] + "\n" + response[i + 1]); } x++; } }
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (textBox1.Text.Length == 0) { MessageBox.Show("Nincs megadva felhasználónév."); //Translate! return; } if (MessageBox.Show("Új jelszót kérsz a megadott névhez?", "", MessageBoxButtons.YesNo) == DialogResult.Yes) { string ret = Networking.SendRequest("resetpass", textBox1.Text, 0, false); if (ret == "nouser") { MessageBox.Show("A megadott felhasználó nem létezik."); } else if (ret == "already") { MessageBox.Show("A link MÁR el lett küldve az E-mail címedre."); } else if (ret == "sent") { MessageBox.Show("A link elküldve az E-mail címedre."); } else if (ret.Contains("notsent")) { MessageBox.Show("A link NEM lett elküldve az E-mail címedre.\nHiba: " + ret.Remove(ret.IndexOf("notsent"), "notsent".Length + 1)); } else { MessageBox.Show("Ismeretlen hiba:\n" + ret); } } }
//private const string ConnID = "MSGer.tk connection"; /*public static void WaitForNewConnections() * { * while (true) * { * Ping pingSender = new Ping(); * //byte[] id = Encoding.Unicode.GetBytes(ConnID); * //PingReply reply = pingSender.Send("3.3.3.3", 30000, id, new PingOptions(512, true)); * Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); * socket.SendTo(ICMPPacket.CreateRequest(), new IPEndPoint(IPAddress.Parse("3.3.3.3"), 8988)); * byte[] buffer = new byte[128]; * //IPEndPoint ep = new IPEndPoint(IPAddress.Any, 8988); * EndPoint ep = (EndPoint)new IPEndPoint(IPAddress.Any, 8988); * socket.ReceiveFrom(buffer, ref ep); * //if (reply.Status == IPStatus.TimeExceeded) * if(ICMPPacket.IsPacketGood(buffer)) * { * Log("A client is trying to connect..."); * //MakeConnection(reply.Address); * MakeConnection(((IPEndPoint)ep).Address); * } * else * { * //Log("An error occured during ICMP... - Status: " + reply.Status); * Log("An error occured during ICMP..."); * } * Thread.Sleep(28 * 1000); * } * } * public static void ConnectToServer(IPEndPoint server) * { * Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); * socket.SendTo(ICMPPacket.CreateReply(),server); * } * * private static void MakeConnection(IPAddress addr) * { * * }*/ public static void KeepUpThread() { //2014.08.28. while (true) //while: 2014.12.19. { Thread.Sleep(59 * 60 * 1000); //59 percenként frissíti a jelenlétét, így biztosan nem jelenti offline-nak a PHP (elvileg) Console.WriteLine("KeepUpThread: " + Networking.SendRequest("keepactive", "", 0, true)); } }
public void LoadPartnerList() //2014.08.28. { contactList.AutoUpdate = false; UserInfo.AutoUpdate = false; //2014.09.26. string[] list = Networking.SendRequest(Networking.RequestType.GetList, "", 0, true).Split(new char[] { 'ͦ' }, StringSplitOptions.RemoveEmptyEntries); //2014.09.26. if (list[0].Contains("Fail")) { MessageBox.Show(list[0]); } if (!UserInfo.KnownUsers.Any(entry => entry.UserID == CurrentUser.UserID)) { var tmpc = new UserInfo(); //2015.05.15. tmpc.UserID = CurrentUser.UserID; //2015.05.15. tmpc.UserName = CurrentUser.UserName; //2015.05.15. tmpc.LastUpdate = 0; //2015.05.15. tmpc.Name = CurrentUser.Name; //2015.05.15. tmpc.IsPartner = false; //2015.05.15. tmpc.Image = CurrentUser.Image; //2015.06.06. UserInfo.KnownUsers.Add(tmpc); //2015.05.15. } UserInfo.KnownUsers = UserInfo.KnownUsers.Select(entry => { entry.IsPartner = false; return(entry); }).ToList(); //2014.09.26. for (int i = 0; i + 1 < list.Length; i += 2) { string username = list[i]; int uid = Int32.Parse(list[i + 1]); if (!UserInfo.IDIsInList(UserInfo.KnownUsers, uid)) { //Ha nem tud róla semmit, akkor töltse le a felhasználónevét, és jelenítse meg azt var tmp = new UserInfo(); tmp.UserID = uid; tmp.UserName = username; tmp.LastUpdate = 0; //Lényegében nem tud róla túl sokat, ezért ha lehet, frissítse tmp.Name = username; tmp.IsPartner = true; UserInfo.KnownUsers.Add(tmp); } else { UserInfo.Select(uid).IsPartner = true; //2014.09.26. UserInfo.Select(uid).UserName = username; //2014.09.26. - Nem megváltoztatható, ha egy felhasználó megpróbálja, nem foglalkozik vele UserInfo.Select(uid).State = 0; //2015.06.25. } } CurrentUser.State = 1; //2014.08.31. 0:48 UserInfo.AutoUpdate = true; foreach (var entry in UserInfo.KnownUsers) { entry.Update(); //Áthelyeztem, mert az értékek frissítésekor is szükség van rá } contactList.AutoUpdate = true; contactList.Enabled = true; contactList.Refresh(); }
private void addbtn_Click(object sender, EventArgs e) { string res = Networking.SendRequest("addcode", "", 0, true); if (res.Length < "Fail".Length || res.Substring(0, "Fail".Length) == "Fail") { MessageBox.Show("A kódgenerálás sikertelen.\n\n" + res, "Hiba"); } else { RefreshList(); } }
public static void Load() { BeforeLogin.SetText("Starting..."); Thread.CurrentThread.Name = "Main Thread"; BeforeLogin.SetText("Loading program settings..."); Storage.Load(false); //Töltse be a nyelvet, legutóbb használt E-mail-t... BeforeLogin.SetText("Checking available ports..."); SetPort(); BeforeLogin.SetText("Loading packs..."); PackManager.LoadAll(); //2015.05.16. MainThread = Thread.CurrentThread; //2015.05.23. MainF = new MainForm(); //2015.05.23. BeforeLogin.SetText(Language.Translate(Language.StringID.BeforeLogin_CheckForUpdates)); //2014.04.25. string response = Networking.SendRequest(Networking.RequestType.CheckForUpdates, Assembly.GetExecutingAssembly().GetName().Version.ToString().Replace(".", ""), 0, false); if (response == "outofdate") { var res = MessageBox.Show(Language.Translate(Language.StringID.OutOfDate), Language.Translate(Language.StringID.OutOfDate_Caption), MessageBoxButtons.YesNo); if (res == DialogResult.Yes) { //2014.12.13. Process.Start("Updater.exe", "\"" + Language.Translate(Language.StringID.Updater) + "\""); //2015.06.14. Program.Exit(); } } else if (response != "fine") { new ErrorHandler(ErrorType.ServerError, new Exception(response)); //2015.06.04. } BeforeLogin.SetText(Language.Translate(Language.StringID.BeforeLogin_LoginForm)); var LoginDialog = new LoginForm(); //2015.05.23. BeforeLogin.Destroy(); LoginDialog.ShowDialog(); //Nézzük, sikerült-e if (CurrentUser.UserID == 0) { return; //2014.09.06. } // Start the thread MainForm.PartnerListUpdateThread.Start(); //Áthelyezve: 2015.06.30. Storage.Load(true); //2014.08.07. }
public static void ParseUpdateInfo(byte[][] bytes) { if (bytes == null) { return; } for (int i = 0; i < bytes.Length; i++) { byte[] data = ParsePacket(bytes[i]).Data; string[] strs = Encoding.Unicode.GetString(data).Split(new string[] { "\n", "\n\r" }, StringSplitOptions.RemoveEmptyEntries); //2014.09.19. string str = ""; for (int j = 0; j < strs.Length; j++) { string[] spl = strs[j].Split('_'); //2014.08.30. int uid = Int32.Parse(spl[0]); //2014.08.30. string[] keyvalue = spl[1].Split('='); //2014.08.30. UserInfo user = UserInfo.Select(uid); //2014.12.31. if (keyvalue[0] == "ispartner") { //2014.08.30. string resp = Networking.SendRequest("ispartner", uid + "", 0, true); if (resp == "yes") { str += "userinfo_" + uid + "_ispartner=True"; } else if (resp == "no") { str += "userinfo_" + uid + "_ispartner=False"; } else { MessageBox.Show("ispartner:\n" + resp); } } else if (keyvalue[0] == "picupdatetime") { //2014.12.31. user.GetImage(Int32.Parse(keyvalue[1])); //Megvizsgálja, hogy kell-e frissítés és ha kell, letölti } else { str += "userinfo_" + strs[j]; } if (j + 1 != strs.Length) { str += "\n"; } user.Update(); //2014.12.31. } Storage.Parse(str); } }
private void registerButton_Click(object sender, EventArgs e) { registerButton.Enabled = false; if (codeText.TextLength == 0 || userText.TextLength == 0 || passText.TextLength == 0 || emailText.TextLength == 0) { MessageBox.Show(Language.Translate(Language.StringID.Reg_EmptyField), Language.Translate(Language.StringID.Error)); registerButton.Enabled = true; return; } string response = Networking.SendRequest(Networking.RequestType.Register, codeText.Text + "ͦ" + userText.Text + "ͦ" + LoginForm.CalculateMD5Hash(passText.Text) + "ͦ" + emailText.Text, 2, false); if (response == "code") { MessageBox.Show(Language.Translate(Language.StringID.Reg_CodeErr), Language.Translate(Language.StringID.Error)); registerButton.Enabled = true; } else if (response == "uname") { MessageBox.Show(Language.Translate(Language.StringID.Reg_NameErr), Language.Translate(Language.StringID.Error)); registerButton.Enabled = true; } else if (response == "ulen") { MessageBox.Show(Language.Translate(Language.StringID.Reg_NameLen), Language.Translate(Language.StringID.Error)); registerButton.Enabled = true; } else if (response == "plen") { MessageBox.Show(Language.Translate(Language.StringID.Reg_PassLen), Language.Translate(Language.StringID.Error)); registerButton.Enabled = true; } else if (response == "email") { MessageBox.Show(Language.Translate(Language.StringID.Reg_Email), Language.Translate(Language.StringID.Error)); registerButton.Enabled = true; } else if (response == "Success!") { MessageBox.Show(Language.Translate(Language.StringID.Reg_Success)); Close(); } else { new ErrorHandler(ErrorType.ServerError, new Exception(response)); //2015.06.04. registerButton.Enabled = true; } }
private void registerButton_Click(object sender, EventArgs e) { registerButton.Enabled = false; if (codeText.TextLength == 0 || userText.TextLength == 0 || passText.TextLength == 0 || emailText.TextLength == 0) { MessageBox.Show(Language.Translate("reg_emptyfield"), Language.Translate("error")); registerButton.Enabled = true; return; } string response = Networking.SendRequest("register", codeText.Text + "ͦ" + userText.Text + "ͦ" + LoginForm.CalculateMD5Hash(passText.Text) + "ͦ" + emailText.Text, 2, false); if (response == "code") { MessageBox.Show(Language.Translate("reg_codeerr"), Language.Translate("error")); registerButton.Enabled = true; } else if (response == "uname") { MessageBox.Show(Language.Translate("reg_nameerr"), Language.Translate("error")); registerButton.Enabled = true; } else if (response == "ulen") { MessageBox.Show(Language.Translate("reg_namelen"), Language.Translate("error")); registerButton.Enabled = true; } else if (response == "plen") { MessageBox.Show(Language.Translate("reg_passlen"), Language.Translate("error")); registerButton.Enabled = true; } else if (response == "email") { MessageBox.Show(Language.Translate("reg_email"), Language.Translate("error")); registerButton.Enabled = true; } else if (response == "Success!") { MessageBox.Show(Language.Translate("reg_success")); Close(); } else { MessageBox.Show(Language.Translate("unknown_error") + ":\n" + response); registerButton.Enabled = true; } }
private void removebtn_Click(object sender, EventArgs e) { if (listBox1.SelectedIndex == -1) { return; } string res = Networking.SendRequest("remcode", listBox1.SelectedItem.ToString().Remove(0, listBox1.SelectedItem.ToString().IndexOf(" - ") + " - ".Length), 0, true); if (res.Substring(0, "Fail".Length) == "Fail") { MessageBox.Show("A kód törlése sikertelen.\n\n" + res, "Hiba"); } else { RefreshList(); } }
private void gobtn_Click(object sender, EventArgs e) { if (glacialList1.SelectedItems.Count == 0 || FoundUsers.Count == 0) { return; } string username = ((GLItem)glacialList1.SelectedItems[0]).Text; string response = Networking.SendRequest(Networking.RequestType.AddUser, username, 0, true); if (response == "Success") { MessageBox.Show("Felhasználó felvéve az ismerőseid közé."); } else { MessageBox.Show("Nem sikerült felvenni a felhasználót az ismerőseid közé.\nLehet, hogy már felvetted, vagy valami hiba történt.\n(" + response + ")"); } }
public void SetOnlineState(object sender, EventArgs e) { int state = 0; if (sender == elérhetőToolStripMenuItem) { state = 1; } if (sender == elfoglaltToolStripMenuItem) { state = 2; } if (sender == nincsAGépnélToolStripMenuItem) { state = 3; } if (sender == null) //2014.08.30. - Erre nagyon sokáig nem volt felkészítve, és ezt kihasználtam a kijelentkezéshez { if (Networking.SendRequest("setstate", 0 + "", 0, true).Contains("Fail")) //Kijelentkezés - if: 2014.11.15. { MessageBox.Show(Language.Translate("error")); } //byte[] tmpb = Encoding.Unicode.GetBytes(CurrentUser.IP.ToString()); string str = ""; foreach (var ip in CurrentUser.IPs) { str += ip + ";"; } byte[] tmpb = Encoding.Unicode.GetBytes(str); byte[] sendb = new byte[4 + tmpb.Length]; Array.Copy(BitConverter.GetBytes(tmpb.Length), sendb, 4); Array.Copy(tmpb, 0, sendb, 4, tmpb.Length); //Networking.SendUpdate(Networking.UpdateType.LogoutUser, sendb, false); Networking.SendUpdateInThread(Networking.UpdateType.LogoutUser, sendb, null); CurrentUser.SendChanges = false; //2014.12.31. } CurrentUser.State = state; //2014.08.28. }
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (textBox1.Text.Length == 0) { //MessageBox.Show("Nincs megadva felhasználónév."); //Translate! MessageBox.Show(Language.Translate(Language.StringID.NoUserNameForPasswordReset)); return; } //if (MessageBox.Show("Új jelszót kérsz a megadott névhez?", "", MessageBoxButtons.YesNo) == DialogResult.Yes) if (MessageBox.Show(Language.Translate(Language.StringID.DoYouWantNewPassword), "", MessageBoxButtons.YesNo) == DialogResult.Yes) { string ret = Networking.SendRequest(Networking.RequestType.ResetPass, textBox1.Text, 0, false); if (ret == "nouser") { //MessageBox.Show("A megadott felhasználó nem létezik."); MessageBox.Show(Language.Translate(Language.StringID.NonexistentUser)); } else if (ret == "already") { //MessageBox.Show("A link MÁR el lett küldve az E-mail címedre."); MessageBox.Show(Language.Translate(Language.StringID.LinkAlreadySent)); } else if (ret == "sent") { //MessageBox.Show("A link elküldve az E-mail címedre."); MessageBox.Show(Language.Translate(Language.StringID.LinkSent)); } else if (ret.Contains("notsent")) { //MessageBox.Show("A link NEM lett elküldve az E-mail címedre.\nHiba: " + ret.Remove(ret.IndexOf("notsent"), "notsent".Length + 1)); MessageBox.Show(Language.Translate(Language.StringID.LinkNotSent) + "\n" + Language.Translate(Language.StringID.Error) + ret.Remove(ret.IndexOf("notsent"), "notsent".Length + 1)); } else { MessageBox.Show("Ismeretlen hiba:\n" + ret); } } }
public static void ParseUpdateInfo(IEnumerable <string[]> strings) { if (strings == null) { return; } foreach (string[] strs in strings) { string str = ""; for (int j = 0; j < strs.Length; j++) { int index = strs[j].IndexOfAny("0123456789".ToCharArray()); if (index == -1) { continue; } strs[j] = strs[j].Remove(0, index); if (strs[j].Length == 0) { continue; } if (!strs[j].Contains('_')) { continue; } string[] spl = strs[j].Split('_'); //2014.08.30. int uid = Int32.Parse(spl[0]); //2014.08.30. string[] keyvalue = spl[1].Split('='); //2014.08.30. UserInfo user = UserInfo.Select(uid); //2014.12.31. if (keyvalue[0] == "ispartner") { //2014.08.30. string resp = Networking.SendRequest(Networking.RequestType.IsPartner, uid + "", 0, true); if (resp == "yes") { str += "userinfo_" + uid + "_ispartner=True"; } else if (resp == "no") { str += "userinfo_" + uid + "_ispartner=False"; } else { MessageBox.Show("ispartner:\n" + resp); } } else if (keyvalue[0] == "picupdatetime") { //2014.12.31. user.GetImageFromNetwork(Int32.Parse(keyvalue[1])); //Megvizsgálja, hogy kell-e frissítés és ha kell, letölti } else { str += "userinfo_" + strs[j]; } if (j + 1 != strs.Length) { str += "\n"; } } Storage.Parse(str); foreach (UserInfo user in UserInfo.KnownUsers) { user.Update(); //2015.05.10. } } }
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); } }
public MainForm() { BeforeLogin.SetText("Starting..."); Program.MainF = this; InitializeComponent(); Thread.CurrentThread.Name = "Main Thread"; toolStripMenuItem4.Enabled = false; //2014.04.12. toolStripMenuItem8.Enabled = false; //2014.04.12. this.WindowState = FormWindowState.Minimized; //2014.04.19. BeforeLogin.SetText("Loading program settings..."); Storage.Load(false); //Töltse be a nyelvet, legutóbb használt E-mail-t... BeforeLogin.SetText("Checking available ports..."); //2014.09.04. - Amint lehet állítsa be a helyes IP-t, majd azt hagyja úgy, akármi történjék while (true) { if (IPGlobalProperties.GetIPGlobalProperties().GetActiveUdpListeners().Select(entry => entry.Port).Contains(Int32.Parse(Storage.Settings["port"]))) { Storage.Settings["port"] = (Int32.Parse(Storage.Settings["port"]) + 1).ToString(); } else { break; } } Networking.ReceiverConnection = new UdpClient(Int32.Parse(Storage.Settings["port"])); //2014.09.04. Networking.SenderConnection.AllowNatTraversal(true); //2014.09.04. BeforeLogin.SetText("Loading languages..."); new Language(); BeforeLogin.SetText(Language.Translate("beforelogin_translatemainf")); #region Helyi beállitás //try //{ fájlToolStripMenuItem.Text = Language.Translate("menu_file"); Language.ReloadEvent += delegate { fájlToolStripMenuItem.Text = Language.Translate("menu_file"); }; kijelentkezésToolStripMenuItem.Text = Language.Translate("menu_file_logout"); Language.ReloadEvent += delegate { kijelentkezésToolStripMenuItem.Text = Language.Translate("menu_file_logout"); }; toolStripMenuItem1.Text = Language.Translate("menu_file_loginnewuser"); Language.ReloadEvent += delegate { toolStripMenuItem1.Text = Language.Translate("menu_file_loginnewuser"); }; állapotToolStripMenuItem.Text = Language.Translate("menu_file_status"); Language.ReloadEvent += delegate { állapotToolStripMenuItem.Text = Language.Translate("menu_file_status"); }; elérhetőToolStripMenuItem.Text = Language.Translate("menu_file_status_online"); Language.ReloadEvent += delegate { elérhetőToolStripMenuItem.Text = Language.Translate("menu_file_status_online"); }; elfoglaltToolStripMenuItem.Text = Language.Translate("menu_file_status_busy"); Language.ReloadEvent += delegate { elfoglaltToolStripMenuItem.Text = Language.Translate("menu_file_status_busy"); }; nincsAGépnélToolStripMenuItem.Text = Language.Translate("menu_file_status_away"); Language.ReloadEvent += delegate { nincsAGépnélToolStripMenuItem.Text = Language.Translate("menu_file_status_away"); }; rejtveKapcsolódikToolStripMenuItem.Text = Language.Translate("menu_file_status_hidden"); Language.ReloadEvent += delegate { rejtveKapcsolódikToolStripMenuItem.Text = Language.Translate("menu_file_status_hidden"); }; fájlKüldéseToolStripMenuItem.Text = Language.Translate("menu_file_sendfile"); Language.ReloadEvent += delegate { fájlKüldéseToolStripMenuItem.Text = Language.Translate("menu_file_sendfile"); }; beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem.Text = Language.Translate("menu_file_openreceivedfiles"); Language.ReloadEvent += delegate { beérkezettFájlokMappájánakMegnyitásaToolStripMenuItem.Text = Language.Translate("menu_file_openreceivedfiles"); }; üzenetekElőzményeinekMegtekintéseToolStripMenuItem.Text = Language.Translate("menu_file_openrecentmsgs"); Language.ReloadEvent += delegate { üzenetekElőzményeinekMegtekintéseToolStripMenuItem.Text = Language.Translate("menu_file_openrecentmsgs"); }; bezárásToolStripMenuItem.Text = Language.Translate("menu_file_close"); Language.ReloadEvent += delegate { bezárásToolStripMenuItem.Text = Language.Translate("menu_file_close"); }; kilépésToolStripMenuItem.Text = Language.Translate("menu_file_exit"); Language.ReloadEvent += delegate { kilépésToolStripMenuItem.Text = Language.Translate("menu_file_exit"); }; ismerősökToolStripMenuItem.Text = Language.Translate("menu_contacts"); Language.ReloadEvent += delegate { ismerősökToolStripMenuItem.Text = Language.Translate("menu_contacts"); }; ismerősFelvételeToolStripMenuItem.Text = Language.Translate("menu_contacts_add"); Language.ReloadEvent += delegate { ismerősFelvételeToolStripMenuItem.Text = Language.Translate("menu_contacts_add"); }; ismerősSzerkesztéseToolStripMenuItem.Text = Language.Translate("menu_contacts_edit"); Language.ReloadEvent += delegate { ismerősSzerkesztéseToolStripMenuItem.Text = Language.Translate("menu_contacts_edit"); }; ismerősTörléseToolStripMenuItem.Text = Language.Translate("menu_contacts_remove"); Language.ReloadEvent += delegate { ismerősTörléseToolStripMenuItem.Text = Language.Translate("menu_contacts_remove"); }; toolStripMenuItem3.Text = Language.Translate("menu_contacts_invite"); Language.ReloadEvent += delegate { toolStripMenuItem3.Text = Language.Translate("menu_contacts_invite"); }; csoportLétrehozásaToolStripMenuItem.Text = Language.Translate("menu_contacts_makegroup"); Language.ReloadEvent += delegate { csoportLétrehozásaToolStripMenuItem.Text = Language.Translate("menu_contacts_makegroup"); }; kategóriaLétrehozásaToolStripMenuItem.Text = Language.Translate("menu_contacts_makecategory"); Language.ReloadEvent += delegate { kategóriaLétrehozásaToolStripMenuItem.Text = Language.Translate("menu_contacts_makecategory"); }; kategóriaSzerkesztéseToolStripMenuItem.Text = Language.Translate("menu_contacts_editcategory"); Language.ReloadEvent += delegate { kategóriaSzerkesztéseToolStripMenuItem.Text = Language.Translate("menu_contacts_editcategory"); }; kategóriaTörléseToolStripMenuItem.Text = Language.Translate("menu_contacts_removecategory"); Language.ReloadEvent += delegate { kategóriaTörléseToolStripMenuItem.Text = Language.Translate("menu_contacts_removecategory"); }; műveletekToolStripMenuItem.Text = Language.Translate("menu_operations"); Language.ReloadEvent += delegate { műveletekToolStripMenuItem.Text = Language.Translate("menu_operations"); }; azonnaliÜzenetKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendmsg"); Language.ReloadEvent += delegate { azonnaliÜzenetKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendmsg"); }; egyébKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendother"); Language.ReloadEvent += delegate { egyébKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendother"); }; emailKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendother_sendmail"); Language.ReloadEvent += delegate { emailKüldéseToolStripMenuItem.Text = Language.Translate("menu_operations_sendother_sendmail"); }; fájlKüldéseToolStripMenuItem1.Text = Language.Translate("menu_file_sendfile"); //Ugyanaz a szöveg Language.ReloadEvent += delegate { fájlKüldéseToolStripMenuItem1.Text = Language.Translate("menu_file_sendfile"); }; ismerősSzámitógépénekFelhivásaToolStripMenuItem.Text = Language.Translate("menu_operations_callcontact"); Language.ReloadEvent += delegate { ismerősSzámitógépénekFelhivásaToolStripMenuItem.Text = Language.Translate("menu_operations_callcontact"); }; videóhivásInditásaToolStripMenuItem.Text = Language.Translate("menu_operations_videocall"); Language.ReloadEvent += delegate { videóhivásInditásaToolStripMenuItem.Text = Language.Translate("menu_operations_videocall"); }; onlineFájlokMegtekintéseToolStripMenuItem.Text = Language.Translate("menu_operations_showonlinefiles"); Language.ReloadEvent += delegate { onlineFájlokMegtekintéseToolStripMenuItem.Text = Language.Translate("menu_operations_showonlinefiles"); }; közösJátékToolStripMenuItem.Text = Language.Translate("menu_operations_playgame"); Language.ReloadEvent += delegate { közösJátékToolStripMenuItem.Text = Language.Translate("menu_operations_playgame"); }; távsegitségKéréseToolStripMenuItem.Text = Language.Translate("menu_operations_askforhelp"); Language.ReloadEvent += delegate { távsegitségKéréseToolStripMenuItem.Text = Language.Translate("menu_operations_askforhelp"); }; eszközökToolStripMenuItem.Text = Language.Translate("menu_tools"); Language.ReloadEvent += delegate { eszközökToolStripMenuItem.Text = Language.Translate("menu_tools"); }; mindigLegfelülToolStripMenuItem.Text = Language.Translate("menu_tools_alwaysontop"); Language.ReloadEvent += delegate { mindigLegfelülToolStripMenuItem.Text = Language.Translate("menu_tools_alwaysontop"); }; hangulatjelekToolStripMenuItem.Text = Language.Translate("menu_tools_emoticons"); Language.ReloadEvent += delegate { hangulatjelekToolStripMenuItem.Text = Language.Translate("menu_tools_emoticons"); }; megjelenitendőKépVáltásaToolStripMenuItem.Text = Language.Translate("menu_tools_changeimage"); Language.ReloadEvent += delegate { megjelenitendőKépVáltásaToolStripMenuItem.Text = Language.Translate("menu_tools_changeimage"); }; háttérMódositásaToolStripMenuItem.Text = Language.Translate("menu_tools_changebackground"); Language.ReloadEvent += delegate { háttérMódositásaToolStripMenuItem.Text = Language.Translate("menu_tools_changebackground"); }; hangokÉsVideóBeállitásaToolStripMenuItem.Text = Language.Translate("menu_tools_voicevideosettings"); Language.ReloadEvent += delegate { hangokÉsVideóBeállitásaToolStripMenuItem.Text = Language.Translate("menu_tools_voicevideosettings"); }; beállitásokToolStripMenuItem.Text = Language.Translate("menu_tools_settings"); Language.ReloadEvent += delegate { beállitásokToolStripMenuItem.Text = Language.Translate("menu_tools_settings"); }; súgóToolStripMenuItem.Text = Language.Translate("menu_help"); Language.ReloadEvent += delegate { súgóToolStripMenuItem.Text = Language.Translate("menu_help"); }; témakörökToolStripMenuItem.Text = Language.Translate("menu_help_contents"); Language.ReloadEvent += delegate { témakörökToolStripMenuItem.Text = Language.Translate("menu_help_contents"); }; aSzolgáltatásÁllapotsaToolStripMenuItem.Text = Language.Translate("menu_help_status"); Language.ReloadEvent += delegate { aSzolgáltatásÁllapotsaToolStripMenuItem.Text = Language.Translate("menu_help_status"); }; adatvédelmiNyilatkozatToolStripMenuItem.Text = Language.Translate("menu_help_privacypolicy"); Language.ReloadEvent += delegate { adatvédelmiNyilatkozatToolStripMenuItem.Text = Language.Translate("menu_help_privacypolicy"); }; használatiFeltételekToolStripMenuItem.Text = Language.Translate("menu_help_termsofuse"); Language.ReloadEvent += delegate { használatiFeltételekToolStripMenuItem.Text = Language.Translate("menu_help_termsofuse"); }; visszaélésBejelentéseToolStripMenuItem.Text = Language.Translate("menu_help_report"); Language.ReloadEvent += delegate { visszaélésBejelentéseToolStripMenuItem.Text = Language.Translate("menu_help_report"); }; segitsenAProgramTökéletesitésébenToolStripMenuItem.Text = Language.Translate("menu_help_improveprogram"); Language.ReloadEvent += delegate { segitsenAProgramTökéletesitésébenToolStripMenuItem.Text = Language.Translate("menu_help_improveprogram"); }; névjegyToolStripMenuItem.Text = Language.Translate("menu_help_about"); Language.ReloadEvent += delegate { névjegyToolStripMenuItem.Text = Language.Translate("menu_help_about"); }; textBox1.Text = Language.Translate("searchbar", textBox1); //contactList.Items[0].SubItems[0].Text = Language.Translate("loading"); - 2014.08.28. - Nincs már rá szükség (hibát is ír, mivel nincs listaelem) //üzenetküldésToolStripMenuItem.Text = Language.Translate("menu_operations_sendmsg"); //emailKüldéseemailToolStripMenuItem.Text = Language.Translate("contact_sendemail"); //toolStripMenuItem2.Text = Language.Translate("contact_copyemail"); //információToolStripMenuItem.Text = Language.Translate("contact_info"); //ismerősLetiltásaToolStripMenuItem.Text = Language.Translate("contact_block"); //ismerősTörléseToolStripMenuItem.Text = Language.Translate("contact_remove"); - Kétszer benne volt, ugyanilyen névvel, csak 1-re végződve lett volna a megfelelő //becenévSzerkesztéseToolStripMenuItem.Text = Language.Translate("contact_editname"); //eseményértesitésekToolStripMenuItem.Text = Language.Translate("contact_eventnotifications"); //beszélgetésnaplóMegnyitásaToolStripMenuItem.Text = Language.Translate("contact_openchatlog"); toolStripMenuItem4.Text = Language.Translate("iconmenu_show"); Language.ReloadEvent += delegate { toolStripMenuItem4.Text = Language.Translate("iconmenu_show"); }; toolStripMenuItem8.Text = Language.Translate("menu_file_logout"); Language.ReloadEvent += delegate { toolStripMenuItem8.Text = Language.Translate("menu_file_logout"); }; toolStripMenuItem9.Text = Language.Translate("menu_file_exit"); Language.ReloadEvent += delegate { toolStripMenuItem9.Text = Language.Translate("menu_file_exit"); }; //} //catch //{ //MessageBox.Show("Error while loading translations."); //} LoadMenu(MenuType.ChatIconMenu); //2014.12.12. LoadMenu(MenuType.PartnerMenu); //2014.12.13. #endregion BeforeLogin.SetText(Language.Translate("beforelogin_loadtextformat")); //2014.05.16. new TextFormat(); BeforeLogin.SetText(Language.Translate("beforelogin_checkforupdates")); //2014.04.25. string response = Networking.SendRequest("checkforupdates", Assembly.GetExecutingAssembly().GetName().Version.ToString().Replace(".", ""), 0, false); if (response == "outofdate") { var res = MessageBox.Show(Language.Translate("outofdate"), Language.Translate("outofdate_caption"), MessageBoxButtons.YesNo); if (res == DialogResult.Yes) //System.Diagnostics.Process.Start("http://msger.url.ph/download.php?version=latest"); //(new UpdateDialog()).Show(); //2014.12.13. - Elvileg át lehet nevezni a programot, miközben fut (ami érdekes) - De inkább csinálok külön programot { //2014.12.13. Process.Start("Updater.exe", "\"" + Language.Translate("updater") + "\" \"" + Language.Translate("updater_info") + "\""); Program.Exit(false); } } else if (response != "fine") { MessageBox.Show(Language.Translate("error") + ": " + response); } //BeforeLogin.SetText(Language.Translate("beforelogin_server")); //2015.01.07. //2014.09.06. /*if (Storage.Settings["isserver"] == "") * { * if (MessageBox.Show(Language.Translate("isserver_msg"), "", MessageBoxButtons.YesNo) == DialogResult.Yes) * Storage.Settings["isserver"] = "1"; * else * Storage.Settings["isserver"] = "0"; * }*/ /*if(Storage.Settings["isserver"]=="1") //2015.01.07. * { * NATUPNPLib.UPnPNAT upnpnat = new NATUPNPLib.UPnPNAT(); * NATUPNPLib.IStaticPortMappingCollection mappings = upnpnat.StaticPortMappingCollection; * if (mappings == null) * { * //MessageBox.Show(Language.Translate("portforward_noaccess")); * } * //else * //{ * foreach (NATUPNPLib.IStaticPortMapping mapping in mappings) * { * if (mapping.Protocol == "UDP" && mapping.InternalPort.ToString() == Storage.Settings["port"]) * { * if (MessageBox.Show(Language.Translate("portforward_existsremove"), "", MessageBoxButtons.YesNo) == DialogResult.Yes) * mappings.Remove(mapping.ExternalPort, "UDP"); * else * Storage.Settings["port"] = (Int32.Parse(Storage.Settings["port"]) + 1).ToString(); * } * * } * int port = int.Parse(Storage.Settings["port"]); * mappings.Add(port, "UDP", port, Dns.GetHostEntry(Dns.GetHostName()).AddressList.Single(entry => * entry.AddressFamily == AddressFamily.InterNetwork * && (entry.ToString().Contains("192.168.0.") || entry.ToString().Contains("192.168.1.") || entry.ToString().Contains("10.0.0.") || entry.ToString().Contains("172.16.0.")) //Helyi IP-k * ).ToString(), true, "MSGer.tk chat program"); * Networking.ReceiverConnection = new UdpClient(Int32.Parse(Storage.Settings["port"])); * //} * }*/ //TO!DO: Nem kell az "isserver" beállítás, először kliensként próbáljon meg csatlakozni, majd szerverként fogadja az új klienseket // a pwnat segítségével //2015.03.15. - Nem kell az sem: IPv6 - A legtöbb eszköz már támogatja BeforeLogin.SetText(Language.Translate("beforelogin_loginform")); try { LoginDialog = new LoginForm(); BeforeLogin.Destroy(); LoginDialog.ShowDialog(); } catch (Exception e) { ErrorHandling.FormError(LoginDialog, e); } //Nézzük, sikerült-e if (CurrentUser.UserID == 0) { return; //2014.09.06. } contactList.Enabled = false; //2014.03.05. MainThread = Thread.CurrentThread; // Create the thread object, passing in the Alpha.Beta method // via a ThreadStart delegate. This does not start the thread. LThread = new Thread(new ThreadStart(new UpdateListAndChat().Run)); LThread.Name = "Update Partnerlist and Chat"; /*Thread keepupthread = new Thread(new ThreadStart(Networking.KeepUpThread)); * keepupthread.Name = "Keep Up Thread"; * * Thread keepupuserst = new Thread(new ThreadStart(Networking.KeepUpUsersThread)); //2014.09.26. * keepupuserst.Name = "Keep Up Users Thread";*/ Thread networkthread = new Thread(new ThreadStart(Networking.NetworkThread)); //2014.12.31. networkthread.Name = "Network Thread"; Storage.Load(true); //2014.08.07. if (Storage.Settings["windowstate"] == "1") //2014.04.18. - 2014.08.08. { this.WindowState = FormWindowState.Maximized; } else if (Storage.Settings["windowstate"] == "2") { this.WindowState = FormWindowState.Minimized; } else if (Storage.Settings["windowstate"] == "3") { this.WindowState = FormWindowState.Normal; } taskbarNotifier = new Notifier("popup-bg.bmp", Color.FromArgb(255, 0, 255), "close.bmp", 5000); taskbarNotifier.Click += PopupClick; taskbarNotifier.CloseClick += PopupCloseClick; toolStripMenuItem4.Enabled = true; //2014.04.12. toolStripMenuItem8.Enabled = true; //2014.04.12. // Start the thread LThread.Start(); //keepupthread.Start(); //keepupuserst.Start(); networkthread.Start(); //2014.08.19. - Küldje el a bejelentkezés hírét, hogy frissítéseket kapjon /*byte[] strb = Encoding.Unicode.GetBytes(CurrentUser.IP.ToString()); * byte[] tmpfinal = new byte[8 * UserInfo.KnownUsers.Count + strb.Length + 4 + 1]; //Hosszúság, IP, ismert felh. ID, frissítési idő * Array.Copy(BitConverter.GetBytes(strb.Length), tmpfinal, 4); * Array.Copy(strb, 0, tmpfinal, 4, strb.Length); * //if (tmpfinal.Length != 0) * for (int i = 0; i < UserInfo.KnownUsers.Count; i++) //Ha a count 0, nem fogja végrehajtani * { * byte[] tmptmp = BitConverter.GetBytes(UserInfo.KnownUsers[i].UserID); * Array.Copy(tmptmp, 0, tmpfinal, i * 4 + strb.Length + 4, 4); * tmptmp = BitConverter.GetBytes(UserInfo.KnownUsers[i].LastUpdate); * Array.Copy(tmptmp, 0, tmpfinal, i * 4 + strb.Length + 4, 4); * } * tmpfinal[tmpfinal.Length - 1] = (Storage.Settings["isserver"] == "1") ? (byte)0x01 : (byte)0x00; //Mivel bejelentkezéstől függetlenül menti el, gépfüggő, hogy itt mit küld el * Networking.ParseUpdateInfo(Networking.SendUpdate(Networking.UpdateType.LoginUser, tmpfinal, false));*/ while (!networkthread.IsAlive) { ; } SendLoginToUsers(); //2014.12.18. notifyIcon1.Visible = true; //2014.09.22. taskbarNotifier.Show("Teszt cím", "Teszt tartalom\nMásodik sor"); Language.ReloadEvent += delegate { textBox1.Text = Language.Translate("searchbar"); }; //2014.12.22. - Nyelvváltáskor törölni fogja a beírt szöveget }
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); } }
private void sendbtn_Click(object sender, EventArgs e) { //TODO: Hibajelentés szerveroldalon Networking.SendRequest(Networking.RequestType.ErrorReport, textBox1.Text, 0, false); //2015.08.28. }