private void Wait_Socket() { Socket sktClient = null; while (true) { //Socket 생성 및 연결 대기 try { //Client 연결을 기다린다. sktClient = lit_Listener.AcceptSocket(); //Chatting을 실행하는 Class 인스턴스화시키고 Socket 할당 Chat_Class cht_Class = new Chat_Class(); cht_Class.Chat_Class_Setup(this, sktClient, this.txt_Chat); //Chatting을 실행하는Thread 생성 Thread thd_ChatProcess = new Thread(new ThreadStart(cht_Class.Chat_Process)); thd_ChatProcess.Start(); } catch (System.Exception) { Form1.soketArray.Remove(sktClient); break; } } }
// 클라이언트 소켓을 관리하기 위한 클래스 선언 private void Wait_Socket() { // 소켓 선언 Socket sktClient = null; while (true) { try { // 인스턴스화 된 tcpListener의 AcceptSocket 메서드를 이용해 해당 클라이언트의 소켓에 할당 sktClient = lit_Listener.AcceptSocket(); // 채팅 기능을 구현한 클래스 Chat_Class를 인스턴스화 Chat_Class cht_Class = new Chat_Class(); // 인스턴스화 된 Chat_Class 클래스에서 채팅 기능 초기화를 구현한 메서드 Chat_Class_Setup을 호출 cht_Class.Chat_Class_Setup(this, sktClient, this.txt_Chat); // 인스턴스화 된 Chat_Class 클래스의 Chat_Process를 파라메터로 받아 ThreadStart 인스턴스화 ThreadStart ts = new ThreadStart(cht_Class.Chat_Process); // Thread 인스턴스화 Thread thd_ChatProcess = new Thread(ts); // 인스턴스화 된 Thread 기동 thd_ChatProcess.Start(); } catch (System.Exception) { // 예외가 발생할 경우 소켓을 보관하는 배열 socketArray에서 해당 클라이언트의 소켓을 삭제하고 반복문 종료 Form1.socketArray.Remove(sktClient); break; } } }
private void Wait_Socket() { Socket sktClient = null; while (true) { try { sktClient = lit_Listener.AcceptSocket(); Chat_Class cht_Class = new Chat_Class(); cht_Class.Chat_Class_Setup(this, sktClient, this.text_Chat); Thread thd_ChatProcess = new Thread(new ThreadStart(cht_Class.Chat_Process)); thd_ChatProcess.Start(); } catch (System.Exception) { Form1.soketArray.Remove(sktClient); break; } } }