public bool Connect(string ip) { try { // 접속할 채팅 서버 ip 주소와 포트 번호를 지정 client = new TcpClient(ip, 7000); this.wnd.Add_MSG(ip + "서버에 접속 성공..."); // 채팅 서버 연결에 성공하면 송수신 네트워크 스트림 생성 if (client.Connected) { if (wnd.turn == true) { index = wnd.random.Next(0, wnd.answer.Length - 1); // wnd.label6.Text = wnd.answer[index]; CSafeSetText(wnd.label6, wnd.answer[index]); } wnd.timer_start(); } stream = client.GetStream(); reader = new StreamReader(stream); writer = new StreamWriter(stream); th = new Thread(new ThreadStart(Receive)); th.Start(); return(true); // 접속 성공하면 true 값을 반환 } catch (Exception ex) { //채팅서버 접속에 실패하면 예외 메시지를 출력 wnd.Add_MSG(ex.Message); return(false); // 접속 실패했으면 false 값을 반환 } }
public void ServerStart() { try { //서버 포트 번호를 7000번으로 지정 IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 7000); server = new TcpListener(ipep); server.Start(); //채팅 서버 실행 this.wnd.Add_MSG("채팅 서버 시작..."); // 채팅 클라이언트가 접속하면 통신 소켓 반환 client = server.AcceptTcpClient(); if (client.Connected) { if (wnd.turn == true) //서버차례가 됐을때 { index = wnd.random.Next(0, wnd.answer.Length - 1); //answer의 인덱스를 랜덤으로 받은것 //wnd.label5.Text = wnd.answer[index]; //문제에다가 answer의 인덱스(값)를 넣음 CSafeSetText(wnd.label5, wnd.answer[index]); } wnd.timer_start(); //타이머 시작(delegate), 델리게이트를 부르는 함수 } stream = client.GetStream(); //통신 소켓에 대한 스트림 구하기 reader = new StreamReader(stream); writer = new StreamWriter(stream); th = new Thread(new ThreadStart(Receive)); th.Start(); } catch (Exception ex) { wnd.Add_MSG(ex.Message); } }