|
|
|
@ -70,11 +70,23 @@ namespace Emby.Common.Implementations.Net
|
|
|
|
|
{
|
|
|
|
|
if (remotePort < 0) throw new ArgumentException("remotePort cannot be less than zero.", "remotePort");
|
|
|
|
|
|
|
|
|
|
var retVal = new Socket(AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
|
|
|
|
|
|
|
|
|
|
var addressFamily = remoteAddress.AddressFamily == IpAddressFamily.InterNetwork
|
|
|
|
|
? AddressFamily.InterNetwork
|
|
|
|
|
: AddressFamily.InterNetworkV6;
|
|
|
|
|
|
|
|
|
|
var retVal = new Socket(addressFamily, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
retVal.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
|
|
|
|
|
}
|
|
|
|
|
catch (SocketException)
|
|
|
|
|
{
|
|
|
|
|
// This is not supported on all operating systems (qnap)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
return new UdpSocket(retVal, new IpEndPointInfo(remoteAddress, remotePort));
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|