protected virtual void Accepted(AsyncSocketAcceptEventArgs e) { AsyncSocketAcceptEventHandler handler = OnAccept; if (handler != null) { handler(this, e); } }
/// <summary> /// Client의 비동기 접속을 처리한다. /// </summary> /// <param name="ar"></param> private void OnListenCallBack(IAsyncResult ar) { try { Socket listener = (Socket)ar.AsyncState; Socket worker = listener.EndAccept(ar); // Client를 Accept 했다고 Event를 발생시킨다. AsyncSocketAcceptEventArgs aev = new AsyncSocketAcceptEventArgs(worker); Accepted(aev); // 다시 새로운 클라이언트의 접속을 기다린다. StartAccept(); } catch (System.Exception e) { AsyncSocketErrorEventArgs eev = new AsyncSocketErrorEventArgs(this.id, e); ErrorOccured(eev); } }