private void OnConnect(IAsyncResult ar) { try { clientSocket.EndConnect(ar); //We are connected so we login into the server Data msgToSend = new Data (); msgToSend.cmdCommand = Command.Login; msgToSend.strName = txtName.Text; msgToSend.strMessage = null; string message = "test"; byte[] b = msgToSend.ToByte (); //byte[] b = Convert.ToByte(message); List<byte> result = new List<byte>(); result.AddRange(BitConverter.GetBytes(message.Length)); byte[] c = result.ToArray(); //Send the message to the server clientSocket.BeginSend(b, 0, b.Length, SocketFlags.None, new AsyncCallback(OnSend), null); //clientSocket.BeginSend(c, 0, c.Length, SocketFlags.None, new AsyncCallback(OnSend), null); } catch (Exception ex) { MessageBox.Show(ex.Message, "ChatClient", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
//Broadcast the message typed by the user to everyone private void btnSend_Click(object sender, EventArgs e) { try { //Fill the info for the message to be send Data msgToSend = new Data(); msgToSend.strName = strName; msgToSend.strMessage = txtMessage.Text; msgToSend.cmdCommand = Command.Message; byte [] byteData = msgToSend.ToByte(); //Send it to the server clientSocket.BeginSend (byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnSend), null); txtMessage.Text = null; } catch (Exception) { MessageBox.Show("Unable to send message to the server.", "ChatClient: " + strName, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void SGSClient_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("Are you sure you want to leave the chat room?", "SGSclient: " + strName, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.No) { e.Cancel = true; return; } try { //Send a message to logout of the server Data msgToSend = new Data (); msgToSend.cmdCommand = Command.Logout; msgToSend.strName = strName; msgToSend.strMessage = null; byte[] b = msgToSend.ToByte (); clientSocket.Send(b, 0, b.Length, SocketFlags.None); clientSocket.Close(); } catch (ObjectDisposedException) { } catch (Exception ex) { MessageBox.Show(ex.Message, "ChatClient: " + strName, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void Form1_Load(object sender, EventArgs e) { this.Text = "ChatClient: " + strName; //The user has logged into the system so we now request the server to send //the names of all users who are in the chat room Data msgToSend = new Data (); msgToSend.cmdCommand = Command.List; msgToSend.strName = strName; msgToSend.strMessage = null; byteData = msgToSend.ToByte(); clientSocket.BeginSend(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnSend), null); byteData = new byte[1024]; //Start listening to the data asynchronously clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnReceive), null); }