From 3c54eb1d0f318fd10ac27fa170f3ca5a9d38b96a Mon Sep 17 00:00:00 2001 From: syneffort Date: Mon, 6 Feb 2023 16:19:26 +0900 Subject: [PATCH] multi thread --- MultiThread/Client/Client.cs | 15 +++++++++ MultiThread/Client/Client.csproj | 10 ++++++ MultiThread/MultiThread.sln | 31 +++++++++++++++++++ MultiThread/MultiThread/MultiThread.csproj | 10 ++++++ MultiThread/MultiThread/Program.cs | 10 ++++++ MultiThread/Server/Server.cs | 36 ++++++++++++++++++++++ MultiThread/Server/Server.csproj | 10 ++++++ 7 files changed, 122 insertions(+) create mode 100644 MultiThread/Client/Client.cs create mode 100644 MultiThread/Client/Client.csproj create mode 100644 MultiThread/MultiThread.sln create mode 100644 MultiThread/MultiThread/MultiThread.csproj create mode 100644 MultiThread/MultiThread/Program.cs create mode 100644 MultiThread/Server/Server.cs create mode 100644 MultiThread/Server/Server.csproj diff --git a/MultiThread/Client/Client.cs b/MultiThread/Client/Client.cs new file mode 100644 index 0000000..4deba5d --- /dev/null +++ b/MultiThread/Client/Client.cs @@ -0,0 +1,15 @@ +using System.Net; +using System.Net.Sockets; + +namespace Client; + +internal class Client +{ + static void Main(string[] args) + { + Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + socket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 20000)); + + Console.ReadLine(); + } +} \ No newline at end of file diff --git a/MultiThread/Client/Client.csproj b/MultiThread/Client/Client.csproj new file mode 100644 index 0000000..74abf5c --- /dev/null +++ b/MultiThread/Client/Client.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + enable + + + diff --git a/MultiThread/MultiThread.sln b/MultiThread/MultiThread.sln new file mode 100644 index 0000000..4d00f16 --- /dev/null +++ b/MultiThread/MultiThread.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32929.385 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Server\Server.csproj", "{CB10505E-B588-4324-AC1D-0EC7C410F8ED}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client", "Client\Client.csproj", "{A7321FF5-0046-4C28-BFE6-DE87E6C8E60C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CB10505E-B588-4324-AC1D-0EC7C410F8ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB10505E-B588-4324-AC1D-0EC7C410F8ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB10505E-B588-4324-AC1D-0EC7C410F8ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB10505E-B588-4324-AC1D-0EC7C410F8ED}.Release|Any CPU.Build.0 = Release|Any CPU + {A7321FF5-0046-4C28-BFE6-DE87E6C8E60C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A7321FF5-0046-4C28-BFE6-DE87E6C8E60C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A7321FF5-0046-4C28-BFE6-DE87E6C8E60C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7321FF5-0046-4C28-BFE6-DE87E6C8E60C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A8467505-FC78-4105-9BA9-C8243C6CF2FB} + EndGlobalSection +EndGlobal diff --git a/MultiThread/MultiThread/MultiThread.csproj b/MultiThread/MultiThread/MultiThread.csproj new file mode 100644 index 0000000..74abf5c --- /dev/null +++ b/MultiThread/MultiThread/MultiThread.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + enable + + + diff --git a/MultiThread/MultiThread/Program.cs b/MultiThread/MultiThread/Program.cs new file mode 100644 index 0000000..d964e32 --- /dev/null +++ b/MultiThread/MultiThread/Program.cs @@ -0,0 +1,10 @@ +namespace MultiThread +{ + internal class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello, World!"); + } + } +} \ No newline at end of file diff --git a/MultiThread/Server/Server.cs b/MultiThread/Server/Server.cs new file mode 100644 index 0000000..7aacc56 --- /dev/null +++ b/MultiThread/Server/Server.cs @@ -0,0 +1,36 @@ +using System.Net; +using System.Net.Sockets; + +namespace Server; + +internal class Server +{ + static void Main(string[] args) + { + Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 20000); + serverSocket.Bind(endPoint); + serverSocket.Listen(1000); + + while (true) + { + Socket clientSocket = serverSocket.Accept(); + Console.WriteLine(clientSocket.RemoteEndPoint); + + Thread t1 = new Thread(() => + { + while (true) + { + byte[] buffer = new byte[256]; + int n1 = clientSocket.Receive(buffer); + if (n1 < 1) + { + clientSocket.Dispose(); + break; + } + } + }); + t1.Start(); + } + } +} \ No newline at end of file diff --git a/MultiThread/Server/Server.csproj b/MultiThread/Server/Server.csproj new file mode 100644 index 0000000..74abf5c --- /dev/null +++ b/MultiThread/Server/Server.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + enable + + +