public void _onConnectionState(ConnectState state) { KBEngine.Event.deregisterIn(this); bool success = (state.error == "" && valid()); if (success) { Dbg.DEBUG_MSG(string.Format("NetworkInterfaceBase::_onConnectionState(), connect to {0} is success!", state.socket.RemoteEndPoint.ToString())); _packetReceiver = createPacketReceiver(); _packetReceiver.startRecv(); connected = true; } else { reset(); Dbg.ERROR_MSG(string.Format("NetworkInterfaceBase::_onConnectionState(), connect error! ip: {0}:{1}, err: {2}", state.connectIP, state.connectPort, state.error)); } Event.fireAll("onConnectionState", new object[] { success }); if (state.connectCB != null) { state.connectCB(state.connectIP, state.connectPort, success, state.userData); } }
public virtual void reset() { _packetReceiver = null; _packetSender = null; connected = false; if (_socket != null) { Dbg.DEBUG_MSG(string.Format("NetworkInterfaceBase::reset(), close socket from '{0}'", _socket.RemoteEndPoint.ToString())); _socket.Close(0); _socket = null; } }