/** * @brief * 연결요청이 완료되거나 데이터통신이 왔을 때 이 함수가 호출됨. * * @details * 연결요청에 대한 결과값에 따라 처리함. 데이터통신은 startreceive를 호출해줌. */ void receiveComplete(object sender, SocketAsyncEventArgs e) { if (e.LastOperation == SocketAsyncOperation.Connect) { if (e.SocketError == SocketError.Success) { ConoConnect connect = e.UserToken as ConoConnect; connectModule.networkHandler.Connect(connect); startReceive(connect); } else { Console.WriteLine("Failed to connect with server."); IConoNetworkHandler networkHandler = connectModule.networkHandler; //ToDo. remove connectModule, clientConnector, connect networkHandler.Connect(null); } } else { receiveData(null, e); } }
/** * @brief * 클래스 내부 변수를 초기화 시키는 함수 * * @details * 받은 정보들을 클래스 변수들로 세팅한다. */ public bool Init(string ip, int port, string serverModule, string serverRule, IConoNetworkHandler networkHandler) { this.ip = ip; this.port = port; this.serverModule = serverModule; this.serverRule = serverRule; this.networkHandler = networkHandler; return(true); }
internal Dictionary <int, ConoConnect> connectDict; ///< 연결된 소켓들을 관리함. (Listen시에는 상대방의 연결요청으로 인해 생성된 소켓, Connect시에는 연결요청된 소켓) /** * @brief * 클래스 내부 변수를 초기화 시키는 함수 * * @details * ConoNetConfig 정보들을 클래스 변수들로 세팅한다. */ public virtual bool Init(ConoNetConfig netConfig) { ip = netConfig.Ip; port = netConfig.Port; serverModule = netConfig.ServerModule; serverRule = netConfig.ServerRule; networkHandler = netConfig.NetworkHandler; connectDict = new Dictionary <int, ConoConnect>(); return(true); }