Skip to content

Commit 6e69455

Browse files
authored
Restore shared project (dotnet#31766)
* restore shared project * add solution file
1 parent a0f7e74 commit 6e69455

File tree

4 files changed

+109
-0
lines changed

4 files changed

+109
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.2.32630.192
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "httpclient", "httpclient\httpclient.csproj", "{48DBB7AA-D843-4F90-A253-5AE6E63A367D}"
7+
EndProject
8+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "misc", "misc\misc.csproj", "{33537DD8-9C65-4CA0-907B-4FD4D96895C1}"
9+
EndProject
10+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tcp-client", "tcp\tcp-client\tcp-client.csproj", "{F89CB77D-CE41-49A2-8648-2A0BE94EB010}"
11+
EndProject
12+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "socket-client", "socket\socket-client\socket-client.csproj", "{0C5A3DD1-CDF1-4928-BF4A-092B25AD9361}"
13+
EndProject
14+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "shared", "shared\shared.csproj", "{B87E06A8-48DB-40C0-A491-754C4180C088}"
15+
EndProject
16+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "socket-server", "socket\socket-server\socket-server.csproj", "{56136062-1D11-4CCF-9168-F356AFF568C7}"
17+
EndProject
18+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tcp-listener", "tcp\tcp-listener\tcp-listener.csproj", "{1CDC97AA-F24E-40CF-8816-056DB5AC3AB9}"
19+
EndProject
20+
Global
21+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
22+
Debug|Any CPU = Debug|Any CPU
23+
Release|Any CPU = Release|Any CPU
24+
EndGlobalSection
25+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
26+
{48DBB7AA-D843-4F90-A253-5AE6E63A367D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
27+
{48DBB7AA-D843-4F90-A253-5AE6E63A367D}.Debug|Any CPU.Build.0 = Debug|Any CPU
28+
{48DBB7AA-D843-4F90-A253-5AE6E63A367D}.Release|Any CPU.ActiveCfg = Release|Any CPU
29+
{48DBB7AA-D843-4F90-A253-5AE6E63A367D}.Release|Any CPU.Build.0 = Release|Any CPU
30+
{33537DD8-9C65-4CA0-907B-4FD4D96895C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
31+
{33537DD8-9C65-4CA0-907B-4FD4D96895C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
32+
{33537DD8-9C65-4CA0-907B-4FD4D96895C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
33+
{33537DD8-9C65-4CA0-907B-4FD4D96895C1}.Release|Any CPU.Build.0 = Release|Any CPU
34+
{F89CB77D-CE41-49A2-8648-2A0BE94EB010}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
35+
{F89CB77D-CE41-49A2-8648-2A0BE94EB010}.Debug|Any CPU.Build.0 = Debug|Any CPU
36+
{F89CB77D-CE41-49A2-8648-2A0BE94EB010}.Release|Any CPU.ActiveCfg = Release|Any CPU
37+
{F89CB77D-CE41-49A2-8648-2A0BE94EB010}.Release|Any CPU.Build.0 = Release|Any CPU
38+
{0C5A3DD1-CDF1-4928-BF4A-092B25AD9361}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39+
{0C5A3DD1-CDF1-4928-BF4A-092B25AD9361}.Debug|Any CPU.Build.0 = Debug|Any CPU
40+
{0C5A3DD1-CDF1-4928-BF4A-092B25AD9361}.Release|Any CPU.ActiveCfg = Release|Any CPU
41+
{0C5A3DD1-CDF1-4928-BF4A-092B25AD9361}.Release|Any CPU.Build.0 = Release|Any CPU
42+
{B87E06A8-48DB-40C0-A491-754C4180C088}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
43+
{B87E06A8-48DB-40C0-A491-754C4180C088}.Debug|Any CPU.Build.0 = Debug|Any CPU
44+
{B87E06A8-48DB-40C0-A491-754C4180C088}.Release|Any CPU.ActiveCfg = Release|Any CPU
45+
{B87E06A8-48DB-40C0-A491-754C4180C088}.Release|Any CPU.Build.0 = Release|Any CPU
46+
{56136062-1D11-4CCF-9168-F356AFF568C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47+
{56136062-1D11-4CCF-9168-F356AFF568C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
48+
{56136062-1D11-4CCF-9168-F356AFF568C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
49+
{56136062-1D11-4CCF-9168-F356AFF568C7}.Release|Any CPU.Build.0 = Release|Any CPU
50+
{1CDC97AA-F24E-40CF-8816-056DB5AC3AB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
51+
{1CDC97AA-F24E-40CF-8816-056DB5AC3AB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
52+
{1CDC97AA-F24E-40CF-8816-056DB5AC3AB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
53+
{1CDC97AA-F24E-40CF-8816-056DB5AC3AB9}.Release|Any CPU.Build.0 = Release|Any CPU
54+
EndGlobalSection
55+
GlobalSection(SolutionProperties) = preSolution
56+
HideSolutionNode = FALSE
57+
EndGlobalSection
58+
GlobalSection(ExtensibilityGlobals) = postSolution
59+
SolutionGuid = {3AD75577-44E2-434B-9D6E-47C248729E88}
60+
EndGlobalSection
61+
EndGlobal
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
global using System.Net;
2+
global using System.Net.Sockets;
3+
global using System.Net.NetworkInformation;
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
public static class NetworkDiscovery
2+
{
3+
public static ValueTask<IPEndPoint> GetTcpEndPointAsync(int port = 13) =>
4+
GetLocalEndPointAsync(port);
5+
6+
public static ValueTask<IPEndPoint> GetSocketEndPointAsync(int port = 9_000) =>
7+
GetLocalEndPointAsync(port);
8+
9+
static async ValueTask<IPEndPoint> GetLocalEndPointAsync(int startingPort)
10+
{
11+
var port = startingPort;
12+
while (IsActivelyBeingUsed(port) && port > IPEndPoint.MaxPort) ++ port;
13+
14+
var localIP = await GetLocalhostIPAddressAsync();
15+
16+
Console.WriteLine($"Found: {localIP} available on port {port}.");
17+
18+
return new IPEndPoint(localIP, port);
19+
}
20+
21+
public static async ValueTask<IPAddress> GetLocalhostIPAddressAsync()
22+
{
23+
var localhost = await Dns.GetHostEntryAsync(Dns.GetHostName());
24+
var isInterNetwork = static (IPAddress ip) =>
25+
ip.AddressFamily is AddressFamily.InterNetwork;
26+
var localIP = localhost.AddressList.FirstOrDefault(isInterNetwork)
27+
?? throw new Exception("Unable to get a local inter network IP.");
28+
29+
return localIP;
30+
}
31+
32+
static bool IsActivelyBeingUsed(int port) =>
33+
IPGlobalProperties.GetIPGlobalProperties()
34+
.GetActiveTcpListeners()
35+
.Any(ip => ip.Port == port);
36+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net6.0</TargetFramework>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
<Nullable>enable</Nullable>
7+
</PropertyGroup>
8+
9+
</Project>

0 commit comments

Comments
 (0)