コード例 #1
0
ファイル: ChatPanel.cs プロジェクト: NorbiPeti/Messenger
 public void OpenSendFile(SelectPartnerForm spform)
 {
     //A küldő a szerver - 2014.06.15.
     //Fogadás: //sendfile üzenet
     if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
         return;
     Stream st = new FileStream(openFileDialog1.FileName, FileMode.Open);
     try
     {
         if (new FileInfo(openFileDialog1.FileName).Length > Int64.Parse(Storage.Settings["filelen"]))
         {
             List<byte> buf = new List<byte>();
             int b;
             do
             {
                 b = st.ReadByte();
                 buf.Add((byte)b);
             }
             while (b != -1);
             st = new MemoryStream(buf.ToArray(), false);
         }
     }
     catch (OutOfMemoryException)
     { //A MemoryStream-et nem hozza létre, ezzel elméletileg memóriát felszabadítva
         st.Seek(0, SeekOrigin.Begin);
     }
     IPHostEntry host;
     IPAddress localIP = IPAddress.Parse("127.0.0.1");
     host = Dns.GetHostEntry(Dns.GetHostName());
     foreach (IPAddress ip in host.AddressList)
     {
         if (ip.AddressFamily == AddressFamily.InterNetwork)
         {
             localIP = ip;
             break;
         }
     }
     //string ret = Networking.SendRequest("setip", spform.Partners[0] + 'ͦ' + localIP.ToString() + ":" + Settings.Default.port + ":" + openFileDialog1.FileName, 0, true);
     //var ipAddr = IPAddress.Parse(ret);
     IPAddress ipAddr = null; //Használja fel a partner ismert IP-címét
     Socket sListener;
     SocketPermission permission;
     permission = new SocketPermission(NetworkAccess.Accept, TransportType.Tcp, "", SocketPermission.AllPorts);
     sListener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
     var ipEndPoint = new IPEndPoint(ipAddr, Int32.Parse(Storage.Settings["port"]));
     sListener.Listen(1);
     ST = st; //Átadja az adatfolyamot a nyilvánosabb változónak
     AsyncCallback aCallback = new AsyncCallback(SendFile_AcceptCallback);
     sListener.BeginAccept(aCallback, sListener);
 }
コード例 #2
0
        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();
                    }
                }
            }
        }