2011년 12월 6일 화요일

[C#] TCP전송 Receive 방법

public void RecevieStart()
        {
            while (true)
            {
                if (Server == null) continue;
                if (Server.Connected == false) continue;
                // 데이터 받을 변수
                byte[] receiveData = ReceiveData(Server);
             
                // 백그라운드워커는 한번에 하나씩만 실행 가능. 따라서 이벤트 핸들러를 새로 만들어 백그라운드워커 돌림
                BackgroundWorker worker = new BackgroundWorker();
                worker.DoWork += new DoWorkEventHandler(bgw1_RunWorkerCompleted);
                worker.RunWorkerAsync(receiveData);
            }
        }

여기서 Server는 보내는 쪽과 연결되어 있는 소켓
Socket Server = null; 로 선언.

여기서 ReceiveData() 함수는 개인적으로 입맛에 맞게 만든 함수.
Server.ReceiveBegin( ......) 을 사용하는것과 크게 다를것이 없다.

여기서 백그라운드 워커는 받을 때 object sender 로 받는게 아니라 DoWorkEventArgs e.Argument 로 받는다.