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); } }
// 크롤러가 접속 됐을때 호출되는 callback private void OnAcceptCrawler(object sender, AsyncSocketAcceptEventArgs e) { AsyncSocketClient worker = new AsyncSocketClient(SocketID_++, e.Worker); // 데이터 수신을 대기한다. worker.Receive(); worker.OnConnet += new AsyncSocketConnectEventHandler(OnConnet); worker.OnClose += new AsyncSocketCloseEventHandler(OnClose); worker.OnError += new AsyncSocketErrorEventHandler(OnError); worker.OnSend += new AsyncSocketSendEventHandler(OnSend); worker.OnReceive += new AsyncSocketReceiveEventHandler(OnReceive); }
protected virtual void Accepted(AsyncSocketAcceptEventArgs e) { AsyncSocketAcceptEventHandler handler = OnAccept; if (handler != null) handler(this, e); }