コード例 #1
0
        //입력란에 커서 위치시 닉네임 변경여부 확인 및 서버에 변경상태 전달
        //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();
                }
            }
        }
コード例 #2
0
        //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;
            }
        }