diff --git a/SocketFlag/Client/Client.cs b/SocketFlag/Client/Client.cs
new file mode 100644
index 0000000..871a75f
--- /dev/null
+++ b/SocketFlag/Client/Client.cs
@@ -0,0 +1,22 @@
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+
+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));
+
+ byte[] buffer = new byte[1024];
+ //socket.Receive(buffer, SocketFlags.Peek);
+
+ socket.Send(Encoding.UTF8.GetBytes("normal"), SocketFlags.None);
+ socket.Send(Encoding.UTF8.GetBytes("OOB"), SocketFlags.OutOfBand); // tcp 헤더에 urgent mode 활성화 (긴급 메시지)
+
+ Console.ReadLine();
+ }
+}
\ No newline at end of file
diff --git a/SocketFlag/Client/Client.csproj b/SocketFlag/Client/Client.csproj
new file mode 100644
index 0000000..74abf5c
--- /dev/null
+++ b/SocketFlag/Client/Client.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net6.0
+ enable
+ enable
+
+
+
diff --git a/SocketFlag/Server/Server.cs b/SocketFlag/Server/Server.cs
new file mode 100644
index 0000000..d191961
--- /dev/null
+++ b/SocketFlag/Server/Server.cs
@@ -0,0 +1,31 @@
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+
+namespace Server;
+
+internal class Server
+{
+ static void Main(string[] args)
+ {
+ Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+ serverSocket.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 20000));
+ serverSocket.Listen(10);
+
+ Socket clientSocket = serverSocket.Accept();
+ Console.WriteLine(clientSocket.RemoteEndPoint);
+
+ byte[] buffer1 = new byte[6];
+ int n1 = clientSocket.Receive(buffer1, SocketFlags.None);
+ Console.WriteLine(Encoding.UTF8.GetString(buffer1));
+
+ byte[] buffer2 = new byte[256];
+ int n2 = clientSocket.Receive(buffer2, 2, 100, SocketFlags.OutOfBand); // OOB 활성화 시 1바이트만 읽어옴
+ Console.WriteLine("OOB data length: " + n2);
+
+ int n3 = clientSocket.Receive(buffer2, 0, 2, SocketFlags.None);
+ Console.WriteLine(Encoding.UTF8.GetString(buffer2));
+
+ Console.ReadLine();
+ }
+}
\ No newline at end of file
diff --git a/SocketFlag/Server/Server.csproj b/SocketFlag/Server/Server.csproj
new file mode 100644
index 0000000..74abf5c
--- /dev/null
+++ b/SocketFlag/Server/Server.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net6.0
+ enable
+ enable
+
+
+
diff --git a/SocketFlag/SocketFlag.sln b/SocketFlag/SocketFlag.sln
new file mode 100644
index 0000000..15020eb
--- /dev/null
+++ b/SocketFlag/SocketFlag.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", "{B5272C9D-DDAC-4F28-A1F1-62DB4CBD62EA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client", "Client\Client.csproj", "{5048D06F-BA72-45AC-8906-5C08EB1845B5}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B5272C9D-DDAC-4F28-A1F1-62DB4CBD62EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B5272C9D-DDAC-4F28-A1F1-62DB4CBD62EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B5272C9D-DDAC-4F28-A1F1-62DB4CBD62EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B5272C9D-DDAC-4F28-A1F1-62DB4CBD62EA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5048D06F-BA72-45AC-8906-5C08EB1845B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5048D06F-BA72-45AC-8906-5C08EB1845B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5048D06F-BA72-45AC-8906-5C08EB1845B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5048D06F-BA72-45AC-8906-5C08EB1845B5}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E982E7BF-5D30-44A5-8AEA-7DF7DFD70762}
+ EndGlobalSection
+EndGlobal
diff --git a/SocketFlag/SocketFlag/Program.cs b/SocketFlag/SocketFlag/Program.cs
new file mode 100644
index 0000000..28ca6bc
--- /dev/null
+++ b/SocketFlag/SocketFlag/Program.cs
@@ -0,0 +1,10 @@
+namespace SocketFlag
+{
+ internal class Program
+ {
+ static void Main(string[] args)
+ {
+ Console.WriteLine("Hello, World!");
+ }
+ }
+}
\ No newline at end of file
diff --git a/SocketFlag/SocketFlag/SocketFlag.csproj b/SocketFlag/SocketFlag/SocketFlag.csproj
new file mode 100644
index 0000000..74abf5c
--- /dev/null
+++ b/SocketFlag/SocketFlag/SocketFlag.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net6.0
+ enable
+ enable
+
+
+