コード例 #1
0
        void OnConnectToServer(object sender, EventArgs e)
        {
            if (mainSock.Connected)
            {
                MsgBoxHelper.Error("이미 연결되어 있습니다!");
                return;
            }

            int port;

            if (!int.TryParse(txtPort.Text, out port))
            {
                MsgBoxHelper.Error("포트 번호가 잘못 입력되었거나 입력되지 않았습니다.");
                txtPort.Focus();
                txtPort.SelectAll();
                return;
            }

            try { mainSock.Connect(txtAddress.Text, port); }
            catch (Exception ex) {
                MsgBoxHelper.Error("연결에 실패했습니다!\n오류 내용: {0}", MessageBoxButtons.OK, ex.Message);
                return;
            }

            // 연결 완료되었다는 메세지를 띄워준다.
            AppendText(txtHistory, "서버와 연결되었습니다.");

            // 연결 완료, 서버에서 데이터가 올 수 있으므로 수신 대기한다.
            AsyncObject obj = new AsyncObject(4096);

            obj.WorkingSocket = mainSock;
            mainSock.BeginReceive(obj.Buffer, 0, obj.BufferSize, 0, DataReceived, obj);
        }
コード例 #2
0
ファイル: Client.cs プロジェクト: E-nan/TCP-IP
 // 그림 맞추기방 버튼
 private void OpenPaintGame(object sender, EventArgs e)
 {
     if (ClientList.CheckedItems.Count == 0)
     {
         MsgBoxHelper.Error("사용자를 선택해주세요.");
         return;
     }
     for (int i = ClientList.CheckedItems.Count - 1; i >= 0; i--)
     {
         if (Nick_label.Text.Equals(ClientList.CheckedItems[i].ToString()))
         {
             MsgBoxHelper.Error("본인을 제외한 사용자를 선택해주세요.");
             return;
         }
     }
     pg = new Paint_Game(this, Nick_label.Text);
     pg.Show();
 }
コード例 #3
0
ファイル: Client.cs プロジェクト: E-nan/TCP-IP
 // 중복 체크
 private void Overlap_Check(object sender, EventArgs e)
 {
     if (!ServerConnected)
     {
         int port = 15000;
         try
         {
             mainSock.Connect(txtServerIP.Text, port);
             ServerConnected = true;
             AsyncObject obj = new AsyncObject(50000);
             obj.WorkingSocket = mainSock;
             mainSock.BeginReceive(obj.Buffer, 0, obj.BufferSize, 0, DataReceived, obj);
         }
         catch (Exception ex)
         {
             MsgBoxHelper.Error("연결에 실패했습니다!\n오류 내용: {0}", MessageBoxButtons.OK, ex.Message);
             return;
         }
     }
     byte[] bDts = Encoding.UTF8.GetBytes("7" + '\x01' + mainSock.LocalEndPoint.ToString() + '\x01' + txtNick.Text + '\x01');
     mainSock.Send(bDts);
 }
コード例 #4
0
ファイル: ChatForm2.cs プロジェクト: HyunJungChoe/NW_Project
        private void OnConnectToServer(object sender, EventArgs e)
        {
            if (mainSock.Connected)
            {
                MsgBoxHelper.Error("이미 연결되어 있습니다!");
                return;
            }

            int port = 15000;           //고정

            nameID = txtID.Text.Trim(); //ID
            if (string.IsNullOrEmpty(nameID))
            {
                MsgBoxHelper.Warn("ID가 입력되지 않았습니다!");
                txtID.Focus();
                return;
            }

            // 서버에 연결
            try
            {
                mainSock.Connect(txtAddress.Text, port);
            }
            catch (Exception ex)
            {
                MsgBoxHelper.Error("연결에 실패했습니다!\n오류 내용: {0}", MessageBoxButtons.OK, ex.Message);
                return;
            }

            // 서버로 ID 전송
            SendID();

            // 연결 완료, 서버에서 데이터가 올 수 있으므로 수신 대기한다.
            AsyncObject obj = new AsyncObject(4096);

            obj.WorkingSocket = mainSock;
            mainSock.BeginReceive(obj.Buffer, 0, obj.BufferSize, 0, DataReceived, obj);
        }
コード例 #5
0
ファイル: Connect_Server.cs プロジェクト: dong7954/TCP-IP
        private void button1_Click(object sender, EventArgs e)
        {
            foreach (Form frmm in Application.OpenForms)
            {
                if (frmm.Name == "Client")
                {
                    frmm.Activate();
                    MessageBox.Show("이미 실행중입니다.", "경고", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
            }
            if (mainSock.Connected)
            {
                MsgBoxHelper.Error("이미 연결되어 있습니다!");
                return;
            }

            //닉네임칸이 빈칸이라면 메시지 박스
            string name = txtNick.Text.Trim();

            if (string.IsNullOrEmpty(name))
            {
                MsgBoxHelper.Warn("닉네임을 입력해 주세요");
                txtNick.Focus();
                return;
            }

            //클라에게 닉네임을 넘겨준다
            //Client.nick = txtNick.Text;
            //클라에게 ip주소를 넘겨준다
            //Client.s_ip = txtAddress.Text;

            Client frm = new Client();

            frm.Show();
        }
コード例 #6
0
        void OnConnectToServer(object sender, EventArgs e)
        {
            // 연결 버튼

            if (btnConnect.Text.Equals("연결끊기"))
            {
                // 문자열을 utf8 형식의 바이트로 변환한다.
                DataForm dataForm = new DataForm();
                dataForm.id   = nameID;
                dataForm.req  = "close";
                dataForm.text = "연결을 종료합니다.";
                string request = JsonConvert.SerializeObject(dataForm);
                byte[] bDts    = Encoding.UTF8.GetBytes(request);
                // Encoding.UTF8.GetBytes(nameID + '`' + tts);


                // 서버에 전송한다.
                mainSock.Send(bDts);

                // 전송 완료 후 텍스트박스에 추가하고, 원래의 내용은 지운다.
                AppendText(txtHistory, string.Format("[연결을 종료합니다.]"));

                mainSock        = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
                btnConnect.Text = "연결";
                return;
            }
            if (mainSock.Connected)
            {
                MsgBoxHelper.Error("이미 연결되어 있습니다!");
                return;
            }



            if (txtID.Text.Length <= 0)
            {
                MsgBoxHelper.Error("아이디를 입력해주세요");
            }
            nameID = txtID.Text; //ID

            AppendText(txtHistory, string.Format("서버: @{0}, port: @{1}, ID: @{2}", txtAddress.Text, port, nameID));
            try
            {
                // 여기서 브로드 캐스트 한번 해줘야 함
                mainSock.Connect(serverIPAddress, port);
                // 밑에는 원래 코드
                // mainSock.Connect(broadcastIPAddresses[192], port);
                //Console.WriteLine("이거 보이면 연결 잘 된겨 브로드 캐스트 아이피 뽑기 : "+broadcastIPAddress  + i);
            }
            catch (Exception ex)
            {
                Console.WriteLine("연결 실패 ");
                MsgBoxHelper.Error("연결에 실패했습니다!\n오류 내용: {0}", MessageBoxButtons.OK, ex.Message);
            }
            // 연결 완료되었다는 메세지를 띄워준다.
            AppendText(txtHistory, "서버와 연결되었습니다.");

            // 연결 완료, 서버에서 데이터가 올 수 있으므로 수신 대기한다.
            AsyncObject obj = new AsyncObject(4096);

            obj.WorkingSocket = mainSock;
            mainSock.BeginReceive(obj.Buffer, 0, obj.BufferSize, 0, DataReceived, obj);
        }