File tree Expand file tree Collapse file tree 2 files changed +10
-4
lines changed
Shadowsocks.Protocol/ListenServices Expand file tree Collapse file tree 2 files changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -16,8 +16,9 @@ namespace Shadowsocks.Protocol.ListenServices
16
16
{
17
17
public class TcpListenService : IListenService
18
18
{
19
- private readonly ILogger < TcpListenService > _logger ;
20
19
public TcpListener TCPListener { get ; }
20
+
21
+ private readonly ILogger < TcpListenService > _logger ;
21
22
private readonly IEnumerable < ILocalTcpService > _services ;
22
23
23
24
private readonly CancellationTokenSource _cts ;
@@ -29,9 +30,9 @@ public class TcpListenService : IListenService
29
30
public TcpListenService ( ILogger < TcpListenService > logger , IPEndPoint local , IEnumerable < ILocalTcpService > services )
30
31
{
31
32
_logger = logger ;
32
- TCPListener = new TcpListener ( local ) ;
33
33
_services = services ;
34
34
35
+ TCPListener = new TcpListener ( local ) ;
35
36
_cts = new CancellationTokenSource ( ) ;
36
37
}
37
38
Original file line number Diff line number Diff line change @@ -13,8 +13,10 @@ namespace Shadowsocks.Protocol.ListenServices
13
13
{
14
14
public class UdpListenService : IListenService
15
15
{
16
- private readonly ILogger < UdpListenService > _logger ;
17
16
public UdpClient UdpListener { get ; }
17
+
18
+ private readonly ILogger < UdpListenService > _logger ;
19
+ private readonly IPEndPoint _local ;
18
20
private readonly IEnumerable < ILocalUdpService > _services ;
19
21
20
22
private readonly CancellationTokenSource _cts ;
@@ -24,17 +26,20 @@ public class UdpListenService : IListenService
24
26
public UdpListenService ( ILogger < UdpListenService > logger , IPEndPoint local , IEnumerable < ILocalUdpService > services )
25
27
{
26
28
_logger = logger ;
27
- UdpListener = new UdpClient ( local ) ;
29
+ _local = local ;
28
30
_services = services ;
29
31
32
+ UdpListener = new UdpClient ( local . AddressFamily ) ;
30
33
_cts = new CancellationTokenSource ( ) ;
31
34
}
32
35
33
36
public async ValueTask StartAsync ( )
34
37
{
35
38
try
36
39
{
40
+ UdpListener . Client . Bind ( _local ) ;
37
41
_logger . LogInformation ( @"{0} {1} Start" , LoggerHeader , UdpListener . Client . LocalEndPoint ) ;
42
+
38
43
while ( ! _cts . IsCancellationRequested )
39
44
{
40
45
//TODO .NET6.0
You can’t perform that action at this time.
0 commit comments