public HResult Open(string ip, int port) { try { ThrowIfError(CheckShutdown()); _networkSender.Connect(ip, port); _networkSender.Start(); SendDescribeRequest(); return(HResult.S_OK); } catch (SocketException sex) { switch (sex.NativeErrorCode) { case 10060: return(HResult.MF_E_NET_TIMEOUT); case 10061: return(HResult.MF_E_NET_REDIRECT); default: return(HResult.MF_E_NETWORK_RESOURCE_FAILURE); } } catch (Exception ex) { return(HResult.MF_E_NETWORK_RESOURCE_FAILURE); } }