//입력란에 커서 위치시 닉네임 변경여부 확인 및 서버에 변경상태 전달 //Notice::현재 미사용 /*private void SendMsgTextbox_Enter(object sender, EventArgs e) * { * if ((clientNickname != idTextbox.Text) && !idTextbox.Text.Equals("")) * { * if (clientNickname == null) * textWrite(">> Your Nickname is " + idTextbox.Text); * else textWrite(clientNickname + "->" + idTextbox.Text,serverSend:true); * * clientNickname = idTextbox.Text; * } * }*/ private void ContentTextbox_DoubleClick(object sender, EventArgs e) { MouseEventArgs mouseEvent = (MouseEventArgs)e; if (mouseEvent.Button == MouseButtons.Left) { DialogResult result = MessageBox.Show("Clear Log?", "Notice", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk); if (result == DialogResult.Yes) { ContentTextbox.Clear(); } } }
//ContentTextbox 에 입력텍스트를 출력하고 소켓을 통해 서버에 같은 메시지 전송 private void textWrite(String text, Boolean printId = false, Boolean serverSend = false) { try { if (ContentTextbox.InvokeRequired) { setTextCallback cb = new setTextCallback(textWrite); Invoke(cb, new object[] { text, printId, serverSend }); } else { if (printId) { text = "[" + clientNickname + "] " + text; } if (clientStream != null && clientStream.CanWrite && serverSend) { byte[] sendMsg = new byte[BUFFERSIZE]; Encoding.UTF8.GetBytes(text).CopyTo(sendMsg, 0); clientStream.Write(sendMsg, 0, sendMsg.Length); clientStream.Flush(); } else if (!serverSend) { //통신불안정으로 서버 브로드캐스팅을 받아오지 못하는 부분이 아닌 명시적으로 내부메세지로 사용하기 위함 ContentTextbox.AppendText(text + "\n"); } } } catch (SocketException) { ContentTextbox.AppendText("\n>> Socket Connection Failed Unexpectably! Please click Reconnect\n"); SendMsgTextbox.Clear(); CloseSocket(); button1.Visible = true; } catch (IOException) { ContentTextbox.AppendText("\n>> Socket Connection Failed Unexpectably! Please click Reconnect\n"); SendMsgTextbox.Clear(); CloseSocket(); button1.Visible = true; } }