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); }
// 그림 맞추기방 버튼 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(); }
// 중복 체크 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); }
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); }
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(); }
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); }