コード例 #1
0
ファイル: Server.cs プロジェクト: Fartash/Chat-Server
            public void receiving()
            {
                int a = 0;

                for (; ; )
                {
                    byte[] message = new byte[1024];

                    a = sock.Receive(message);
                    if (a == 0)
                    {
                        //MessageBox.Show("The Client was Disconnected!");
                        //in event methode send message ra farakhani mikonad
                        //ke an method sockete morede nazar ra az socketArray
                        //hazf mikonad ve eventi ijad mikonad ke liste user haye
                        //online update shavad
                        messageReceptionEventArgs f = new messageReceptionEventArgs(message, true, sock);
                        messageReceived(this, f);
                        //
                        disconnectionEventArgs po = new disconnectionEventArgs(sock);
                        Disconnection(this, po);

                        break;
                    }
                    else
                    {
                        messageReceptionEventArgs k = new messageReceptionEventArgs(message, false, sock);
                        messageReceived(this, k);
                    }
                }
            }
コード例 #2
0
ファイル: Server.cs プロジェクト: Fartash/Chat-Server
        private void sendMessage(object sender, messageReceptionEventArgs eveArgs)
        {
            string t = null;
            if (eveArgs.Disconnection)
            {
                foreach (DictionaryEntry item in socketArray)
                {
                    if (eveArgs.theSocket == item.Value)
                    {
                        t = (string)item.Key;
                    }
                }
                if (t != null)
                {
                    socketArray.Remove(t);
                    clientConnectionEventArgs sd = new clientConnectionEventArgs(t, true);
                    clientConnected(this, sd);
                }
            }
            else
            {
                Socket s;
                byte[] id = new byte[10];
                byte[] msg = new byte[1014];
                for (int i = 0; i < 10; ++i)
                    if (eveArgs.message[i] != 0)
                        id[i] = eveArgs.message[i];
                for (int j = 10, k = 0; j < 1014; ++j, ++k)
                    if (eveArgs.message[j] != 0)
                        msg[k] = eveArgs.message[j];

                s = (Socket)socketArray[Encoding.ASCII.GetString(id, 0, id.Length)];
                if (s != null) //if the destination user is online
                    s.Send(eveArgs.message);
            }
        }