protected override void ProcessPlug() { m_ioObject.SetHandler(this); m_ioObject.AddSocket(m_handle); Accept(); }
// Internal function to start the actual connection establishment. private void StartConnecting() { Debug.Assert(m_s == null); // Create the socket. try { m_s = AsyncSocket.Create(m_addr.Resolved.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp); } catch (SocketException) { AddReconnectTimer(); return; } m_ioObject.AddSocket(m_s); m_handleValid = true; // Connect to the remote peer. try { m_s.Connect(m_addr.Resolved.Address.Address, m_addr.Resolved.Address.Port); m_socket.EventConnectDelayed(m_endpoint, ErrorCode.InProgres); } catch (SocketException ex) { OutCompleted(ex.SocketErrorCode, 0); } }
/// <summary> /// Internal function to start the actual connection establishment. /// </summary> private void StartConnecting() { Debug.Assert(m_s == null); // Create the socket. try { m_s = AsyncSocket.Create(m_addr.Resolved.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp); } catch (SocketException) { AddReconnectTimer(); return; } m_ioObject.AddSocket(m_s); m_handleValid = true; // Connect to the remote peer. try { m_s.Connect(m_addr.Resolved.Address.Address, m_addr.Resolved.Address.Port); m_socket.EventConnectDelayed(m_endpoint, ErrorCode.InProgress); } catch (SocketException ex) { OutCompleted(ex.SocketErrorCode, 0); } // TerminatingException can occur in above call to EventConnectDelayed via // MonitorEvent.Write if corresponding PairSocket has been sent Term command catch (TerminatingException) {} }
protected override void ProcessPlug() { // Start polling for incoming connections. m_ioObject.SetHandler(this); m_ioObject.AddSocket(m_handle); Accept(); }
void IEngine.Plug(IOThread ioThread, SessionBase session) { m_session = session; m_ioObject = new IOObject(null); m_ioObject.SetHandler(this); m_ioObject.Plug(ioThread); m_ioObject.AddSocket(m_handle); DropSubscriptions(); var msg = new Msg(); msg.InitEmpty(); // push message to the session because there is no identity message with pgm session.PushMsg(ref msg); m_state = State.Receiving; BeginReceive(); }
public void Plug(IOThread ioThread, SessionBase session) { Debug.Assert(!m_plugged); m_plugged = true; // Connect to session object. Debug.Assert(m_session == null); Debug.Assert(session != null); m_session = session; m_socket = m_session.Socket; m_ioObject = new IOObject(null); m_ioObject.SetHandler(this); // Connect to I/O threads poller object. m_ioObject.Plug(ioThread); m_ioObject.AddSocket(m_handle); m_ioEnabled = true; FeedAction(Action.Start, SocketError.Success, 0); }