public SocketFrameHandler(AmqpTcpEndpoint endpoint, ConnectionFactoryBase.ObtainSocket socketFactory, int timeout) { m_endpoint = endpoint; m_socket = null; if (Socket.OSSupportsIPv6) { try { m_socket = socketFactory(AddressFamily.InterNetworkV6); Connect(m_socket, endpoint, timeout); } catch (ConnectFailureException) // could not connect using IPv6 { m_socket = null; } // Mono might raise a SocketException when using IPv4 addresses on // an OS that supports IPv6 catch (SocketException) { m_socket = null; } } if (m_socket == null) { m_socket = socketFactory(AddressFamily.InterNetwork); Connect(m_socket, endpoint, timeout); } Stream netstream = m_socket.GetStream(); netstream.ReadTimeout = timeout; netstream.WriteTimeout = timeout; if (endpoint.Ssl.Enabled) { try { netstream = SslHelper.TcpUpgrade(netstream, endpoint.Ssl); } catch (Exception) { Close(); throw; } } m_reader = new NetworkBinaryReader(new BufferedStream(netstream)); m_writer = new NetworkBinaryWriter(new BufferedStream(netstream)); }
public IFrameHandler CreateFrameHandler(AmqpTcpEndpoint endpoint, ConnectionFactoryBase.ObtainSocket socketFactory, int timeout) { return(new SocketFrameHandler(endpoint, socketFactory, timeout)); }