private void OnConnect(IAsyncResult ar) { try { System.Console.WriteLine("@ OnConnect:" + "Start Timer"); Thread.Sleep(5000); clientSocket.EndConnect(ar); //We are connected so we login into the server Data msgToSend = new Data(); msgToSend.cmdCommand = Command.Login; msgToSend.strName = strName; msgToSend.strMessage = null; byte[] b = msgToSend.ToByte(); //Send the message to the server clientSocket.BeginSend(b, 0, b.Length, SocketFlags.None, new AsyncCallback(OnSend), null); //Start OnReceive byteData = new byte[1024]; //Start listening to the data asynchronously clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnReceive), null); } catch (Exception ex) { System.Console.WriteLine("@ OnConnect:" + ex.Message); } }
private void OnReceive(IAsyncResult ar) { try { clientSocket.EndReceive(ar); Data msgReceived = new Data(byteData); //Accordingly process the message received switch (msgReceived.cmdCommand) { case Command.Login: //lstChatters.Items.Add(msgReceived.strName); break; case Command.Logout: //lstChatters.Items.Remove(msgReceived.strName); break; case Command.Message: break; case Command.List: //lstChatters.Items.AddRange(msgReceived.strMessage.Split('*')); //lstChatters.Items.RemoveAt(lstChatters.Items.Count - 1); //txtChatBox.Text += "<<<" + strName + " has joined the room>>>\r\n"; break; } if (msgReceived.strMessage != null && msgReceived.cmdCommand != Command.List) { MainAct.LogText += msgReceived.strMessage + "\r\n"; MainAct.OnSetText(); } byteData = new byte[1024]; clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnReceive), null); } catch (ObjectDisposedException) { } catch (Exception ex) { System.Console.WriteLine("@ OnReceive:" + ex.Message); } }