指定AddressFamily

This commit is contained in:
陈国伟 2021-11-18 16:05:53 +08:00
parent bf3bd5c909
commit de5016a23f
4 changed files with 6 additions and 6 deletions

View File

@ -274,7 +274,7 @@ namespace FastGithub.DomainResolve
{ {
try try
{ {
using var socket = new Socket(SocketType.Stream, ProtocolType.Tcp); using var socket = new Socket(address.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
await socket.ConnectAsync(address, port, cancellationToken); await socket.ConnectAsync(address, port, cancellationToken);
return address; return address;
} }

View File

@ -50,7 +50,7 @@ namespace FastGithub.DomainResolve
{ {
using var timeoutTokenSource = new CancellationTokenSource(maxConnectTimeout); using var timeoutTokenSource = new CancellationTokenSource(maxConnectTimeout);
using var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, timeoutTokenSource.Token); using var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, timeoutTokenSource.Token);
using var socket = new Socket(SocketType.Stream, ProtocolType.Tcp); using var socket = new Socket(address.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
await socket.ConnectAsync(address, port, linkedTokenSource.Token); await socket.ConnectAsync(address, port, linkedTokenSource.Token);
return new IPAddressElapsed(address, stopWatch.Elapsed); return new IPAddressElapsed(address, stopWatch.Elapsed);
} }

View File

@ -128,7 +128,7 @@ namespace FastGithub.Http
/// <returns></returns> /// <returns></returns>
private async ValueTask<Stream> ConnectAsync(SocketsHttpConnectionContext context, IPEndPoint ipEndPoint, CancellationToken cancellationToken) private async ValueTask<Stream> ConnectAsync(SocketsHttpConnectionContext context, IPEndPoint ipEndPoint, CancellationToken cancellationToken)
{ {
var socket = new Socket(SocketType.Stream, ProtocolType.Tcp); var socket = new Socket(ipEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
await socket.ConnectAsync(ipEndPoint, cancellationToken); await socket.ConnectAsync(ipEndPoint, cancellationToken);
var stream = new NetworkStream(socket, ownsSocket: true); var stream = new NetworkStream(socket, ownsSocket: true);
@ -181,11 +181,11 @@ namespace FastGithub.Http
} }
else else
{ {
if(IPAddress.TryParse(this.domainConfig.IPAddress, out address)) if (IPAddress.TryParse(this.domainConfig.IPAddress, out address))
{ {
yield return new IPEndPoint(address, dnsEndPoint.Port); yield return new IPEndPoint(address, dnsEndPoint.Port);
} }
await foreach (var item in this.domainResolver.ResolveAllAsync(dnsEndPoint, cancellationToken)) await foreach (var item in this.domainResolver.ResolveAllAsync(dnsEndPoint, cancellationToken))
{ {
yield return new IPEndPoint(item, dnsEndPoint.Port); yield return new IPEndPoint(item, dnsEndPoint.Port);

View File

@ -32,7 +32,7 @@ namespace FastGithub.HttpServer
public override async Task OnConnectedAsync(ConnectionContext context) public override async Task OnConnectedAsync(ConnectionContext context)
{ {
var address = await this.domainResolver.ResolveAnyAsync(this.sshOverHttpsEndPoint); var address = await this.domainResolver.ResolveAnyAsync(this.sshOverHttpsEndPoint);
using var socket = new Socket(SocketType.Stream, ProtocolType.Tcp); using var socket = new Socket(address.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
await socket.ConnectAsync(address, this.sshOverHttpsEndPoint.Port); await socket.ConnectAsync(address, this.sshOverHttpsEndPoint.Port);
var targetStream = new NetworkStream(socket, ownsSocket: false); var targetStream = new NetworkStream(socket, ownsSocket: false);