public AMSockConn NewSockConn(int i_iARReadPort, int i_iARWritePort) { AMSockConn ascRet = null; ascRet = new AMSockConn(); m_Socks.Add(ascRet); ascRet.m_iARReadPort = i_iARReadPort; ascRet.m_iARWritePort = i_iARWritePort; ascRet.m_listenARRead = new TcpListener(IPAddress.Any, ascRet.m_iARReadPort); ascRet.m_listenARWrite = new TcpListener(IPAddress.Any, ascRet.m_iARWritePort); if ((ascRet.m_listenARRead == null) || (ascRet.m_listenARWrite == null)) { ascRet = null; //Console.Error.WriteLine("ERROR AMSockConn.NewSockConn() - Couldn't create sockets!"); m_Logger.Log(Level.Exception, "AMSockConn.NewSockConn() - Couldn't create sockets!"); } else { ascRet.m_listenARRead.Start(); ascRet.m_listenARWrite.Start(); } return(ascRet); }
public AMSockConn GetSockConn(int i_iVMCKey) { int ii = 0, iLen = 0; AMSockConn ascTmp = null, ascRet = null; Monitor.Enter(m_Lock); try { iLen = m_Socks.Count; for (ii = 0; ((ii < iLen) && (ascRet == null)); ii++) { ascTmp = (AMSockConn)(m_Socks[ii]); if (ascTmp.m_VMC != null) // Otherwise it hasn't been tied to a VMC, and thus isn't in use. { if (ascTmp.m_VMC.m_iKey == i_iVMCKey) { ascRet = ascTmp; } } } // If a socket wasn't found for the VMC... if (ascRet == null) { m_Logger.Log(Level.Exception, "AMSockConn.GetSockConn() - Socket not found for VMC #" + i_iVMCKey.ToString() + "."); m_Logger.Log(Level.Debug, "GSC dump:------------------------------------------------------"); ii = 0; for (ii = 0; ii < iLen; ii++) { ascTmp = (AMSockConn)(m_Socks[ii]); if (ascTmp.m_VMC != null) { m_Logger.Log(Level.Debug, string.Format("GSC dump: [{0}] == {1}", ii, ascTmp.m_VMC.m_iKey)); } } m_Logger.Log(Level.Debug, "GSC dump:------------------------------------------------------"); } } catch (Exception exc) { m_Logger.Log(Level.Exception, string.Format("AMSockConn.GetSockConn() - Exception for VMC #{0}: '{1}'.", i_iVMCKey.ToString(), exc.ToString())); } finally { Monitor.Exit(m_Lock); } return(ascRet); }
public AMSockConn GetSockConn(string i_sVMCDescription) { int ii = 0, iLen = 0; AMSockConn ascTmp = null, ascRet = null; Monitor.Enter(m_Lock); try { iLen = m_Socks.Count; for (ii = 0; ((ii < iLen) && (ascTmp == null)); ii++) { ascTmp = (AMSockConn)(m_Socks[ii]); if (ascTmp.m_VMC.m_sDescription == i_sVMCDescription) { ascRet = ascTmp; } } // If a socket wasn't found for the VMC... if (ascRet == null) { m_Logger.Log(Level.Exception, "AMSockConn.GetSockConn() - Socket not found for VMC by description: '" + i_sVMCDescription + "'."); } } catch (Exception exc) { m_Logger.Log(Level.Exception, string.Format("AMSockConn.GetSockConn() - Exception for VMC '{0}': '{1}'.", i_sVMCDescription, exc.ToString())); } finally { Monitor.Exit(m_Lock); } return(ascRet); }