Beispiel #1
0
        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 값을 반환
            }
        }
Beispiel #2
0
        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); }
        }