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); } } }
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); } }