/// <summary> /// 대상지(서버)와 연결 /// </summary> /// <returns></returns> public bool Connect() { FileLogManager.GetInstance().WriteLog("[SessionManager] Connect( start )"); bool result = true; try { if (socket != null && !socket.Connected) { FileLogManager.GetInstance().WriteLog("[SessionManager] Connect( 통신 끊긴 상태=> 이벤트를 해제, 소켓 닫음 )"); // 끊긴 상태 this.socket.connectEvtHandler -= new ConnectEvtHandler(socket_OnOpen); this.socket.closeEvtHandler -= new CloseEvtHandler(socket_OnClose); this.socket.recvEvtHandler -= new RecvEvtHandler(socket_OnReceive); this.socket.Close(); this.socket = null; return(false); } if (this.socket == null) { FileLogManager.GetInstance().WriteLog("[SessionManager] Connect( 소켓이 존재하지 않음 => 소켓 생성 )"); this.socket = new AdengClientSocket(); this.socket.connectEvtHandler += new ConnectEvtHandler(socket_OnOpen); this.socket.closeEvtHandler += new CloseEvtHandler(socket_OnClose); this.socket.recvEvtHandler += new RecvEvtHandler(socket_OnReceive); } if (!this.socket.Connected) { this.socket.Connect(this.targetIP, this.targetPort); } } catch (Exception ex) { System.Console.WriteLine("[SessionManager] Connect( " + ex.ToString() + ")"); FileLogManager.GetInstance().WriteLog("[SessionManager] Connect( " + ex.ToString() + " )"); if (socket != null) { if (this.socket.Connected) { Disconnect(); } } result = false; throw ex; } FileLogManager.GetInstance().WriteLog("[SessionManager] Connect( end )"); return(result); }
/// <summary> /// 데이터 전송. /// 이 함수는 처리 속도를 고려하여, Connect() 처리가 선행되는 것을 전제한다. /// </summary> /// <param name="data"></param> /// <returns>데이터 전송 결과</returns> public bool SendData(byte[] data) { bool result = true; try { if (this.socket == null) { System.Console.WriteLine("[SessionManager] SendData(socket is null)"); FileLogManager.GetInstance().WriteLog("[SessionManager] SendData( socket is null )"); return(false); } else if (!this.socket.Connected) { System.Console.WriteLine("[SessionManager] SendData(socket is not Connected!!)"); FileLogManager.GetInstance().WriteLog("[SessionManager] SendData( socket is not connected!! )"); this.socket.connectEvtHandler -= new ConnectEvtHandler(socket_OnOpen); this.socket.closeEvtHandler -= new CloseEvtHandler(socket_OnClose); this.socket.recvEvtHandler -= new RecvEvtHandler(socket_OnReceive); this.socket.Close(); this.socket = null; System.Console.WriteLine("[SessionManager] SendData(socket is disconnected)"); return(false); } else { // } this.socket.Send(data, data.Length); } catch (Exception ex) { System.Console.WriteLine("[SessionManager] SendData(Exception:" + ex.ToString() + ")"); FileLogManager.GetInstance().WriteLog("[SessionManager] SendData( " + ex.ToString() + " )"); result = false; } return(result); }
/// <summary> /// 대상지(서버)와의 연결 해제 /// </summary> /// <returns></returns> public bool Disconnect() { FileLogManager.GetInstance().WriteLog("[SessionManager] Disconnect( start )"); if (this.socket == null) { FileLogManager.GetInstance().WriteLog("[SessionManager] Disconnect( socket is null )"); return(true); } bool result = true; try { this.socket.connectEvtHandler -= new ConnectEvtHandler(socket_OnOpen); this.socket.closeEvtHandler -= new CloseEvtHandler(socket_OnClose); this.socket.recvEvtHandler -= new RecvEvtHandler(socket_OnReceive); if (this.socket.Connected) { this.socket.Close(); } this.socket = null; } catch (Exception ex) { System.Console.WriteLine("[SessionManager] Disconnect(Exception:" + ex.ToString() + ")"); FileLogManager.GetInstance().WriteLog("[SessionManager] Disconnect( Exception=[" + ex.ToString() + " )"); result = false; this.socket = null; throw ex; } FileLogManager.GetInstance().WriteLog("[SessionManager] Connect( end )"); return(result); }
public ReceiveEvtArgs(AdengClientSocket _socket, byte[] _buff) { this.socket = _socket; this.buff = _buff; }
public ConnectEvtArgs(AdengClientSocket _socket) { this.socket = _socket; }