Browse Source

Выполнена 20 лабораторная

Вадим Королёв 1 year ago
parent
commit
95541279b9

+ 39 - 0
Lab20-Client/Lab20-ClientSingleThread.csproj

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProjectGuid>{1BC77094-79CB-4B27-B40E-E87F72E92D82}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>Lab20Client</RootNamespace>
+    <AssemblyName>Lab20-Client</AssemblyName>
+    <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ExternalConsole>true</ExternalConsole>
+    <PlatformTarget>x86</PlatformTarget>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ExternalConsole>true</ExternalConsole>
+    <PlatformTarget>x86</PlatformTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+</Project>

+ 57 - 0
Lab20-Client/Program.cs

@@ -0,0 +1,57 @@
+using System;
+using System.Text;
+using System.Net;
+using System.Net.Sockets;
+
+namespace Lab20Client
+{
+    class MainClass
+    {
+        public static void Main(string[] args)
+        {
+            //Console.OutputEncoding = Encoding.GetEncoding(866); ;
+            try
+            {
+                Communicate("localhost", 8888);
+            }
+            catch (Exception exc)
+            {
+                Console.WriteLine(exc.ToString());
+            }
+        }
+
+        private static void Communicate(string hostname, int port)
+        {
+            IPHostEntry iPHost = Dns.GetHostEntry(hostname);
+            IPAddress iPAddress = iPHost.AddressList[0];
+            IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, port);
+
+            Socket socket = new Socket(
+                iPAddress.AddressFamily,
+                SocketType.Stream,
+                ProtocolType.Tcp
+            );
+            socket.Connect(iPEndPoint);
+
+            // Отправка сообщения
+            Console.Write("Enter message: ");
+            string message = Console.ReadLine();
+            Console.WriteLine($"Connecting to port: {iPEndPoint}");
+            byte[] data = Encoding.UTF8.GetBytes(message);
+            int bytesSent = socket.Send(data);
+
+            // Принятие ответа
+            byte[] bytes = new byte[1024];
+            int bytesRec = socket.Receive(bytes);
+            Console.WriteLine($"Server responded: \"{Encoding.UTF8.GetString(bytes, 0, bytesRec)}\"");
+
+            if (message.IndexOf("<TheEnd>") == -1)
+            {
+                Communicate(hostname, port);
+            }
+
+            socket.Shutdown(SocketShutdown.Both);
+            socket.Close();
+        }
+    }
+}

+ 26 - 0
Lab20-Client/Properties/AssemblyInfo.cs

@@ -0,0 +1,26 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes. 
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("Lab20-Client")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("${AuthorCopyright}")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly, 
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]

+ 39 - 0
Lab20-ClientMultiThread/Lab20-ClientMultiThread.csproj

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProjectGuid>{772C2BE2-6506-4130-8318-E6CC64A45E45}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>Lab20ClientMultiThread</RootNamespace>
+    <AssemblyName>Lab20-ClientMultiThread</AssemblyName>
+    <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ExternalConsole>true</ExternalConsole>
+    <PlatformTarget>x86</PlatformTarget>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ExternalConsole>true</ExternalConsole>
+    <PlatformTarget>x86</PlatformTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+</Project>

+ 51 - 0
Lab20-ClientMultiThread/Program.cs

@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.IO;
+using System.Net;
+using System.Net.Sockets;
+
+namespace Lab20ClientMultiThread
+{
+    class Program
+    {
+        public static void Main(string[] args)
+        {
+            for (int i = 0; i < 5; i++)
+            {
+                Console.WriteLine($"\nConnection #{i}\n");
+                Connect("127.0.0.1", $"Hello World! #{i}");
+            }
+        }
+
+        private static void Connect(string addr, string message)
+        {
+            try
+            {
+                int port = 9999;
+                TcpClient client = new TcpClient(addr, port);
+
+                // Convert message to ASCII, then to bytes
+                byte[] data = Encoding.ASCII.GetBytes(message);
+                NetworkStream stream = client.GetStream();
+
+                stream.Write(data, 0, data.Length);
+                Console.WriteLine($"Sent message: \"{message}\""); ;
+
+                // Server response handling
+                data = new byte[256];
+                string response = String.Empty;
+                int bytes = stream.Read(data, 0, data.Length);
+                response = Encoding.ASCII.GetString(data, 0, bytes);
+                Console.WriteLine($"Server responded: \"{response}\"");
+                stream.Close();
+                client.Close();
+            }
+            catch (SocketException exc)
+            {
+                Console.WriteLine($"Socket exception: {exc}");
+            }
+        }
+    }
+}

+ 26 - 0
Lab20-ClientMultiThread/Properties/AssemblyInfo.cs

@@ -0,0 +1,26 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes. 
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("Lab20-ClientMultiThread")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("${AuthorCopyright}")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly, 
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]

+ 39 - 0
Lab20-Server/Lab20-ServerSingleThread.csproj

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProjectGuid>{FB2175A6-FABB-4E02-9481-836B1593B2EB}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>Lab20Server</RootNamespace>
+    <AssemblyName>Lab20-Server</AssemblyName>
+    <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ExternalConsole>true</ExternalConsole>
+    <PlatformTarget>x86</PlatformTarget>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ExternalConsole>true</ExternalConsole>
+    <PlatformTarget>x86</PlatformTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+</Project>

+ 64 - 0
Lab20-Server/Program.cs

@@ -0,0 +1,64 @@
+using System;
+using System.Text;
+using System.Net;
+using System.Net.Sockets;
+
+namespace Lab20Server
+{
+    class Program
+    {
+        public static void Main(string[] args)
+        {
+            //Console.OutputEncoding = Encoding.GetEncoding(866);
+            Console.WriteLine("Server started");
+
+            IPHostEntry iPHost = Dns.GetHostEntry("localhost");
+            IPAddress iPAddress = iPHost.AddressList[0];
+            IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, 8888);
+
+            Socket socket = new Socket(
+                iPAddress.AddressFamily,
+                SocketType.Stream,
+                ProtocolType.Tcp
+            );
+
+            try
+            {
+                socket.Bind(iPEndPoint);
+                socket.Listen(10);
+                while (true)
+                {
+                    Console.WriteLine($"Listening on port {iPEndPoint}");
+
+                    // Принятие данных
+                    Socket s = socket.Accept();
+                    string data = null;
+                    byte[] bytes = new byte[1024];
+                    int bytesCount = s.Receive(bytes);
+                    data += Encoding.UTF8.GetString(bytes, 0, bytesCount);
+
+                    Console.WriteLine($"Data from client: {data}\n\n");
+
+                    // Эхо
+                    string reply = $"Query size: {data.Length} chars";
+                    byte[] msg = Encoding.UTF8.GetBytes(reply);
+                    s.Send(msg);
+
+                    // Проверка на закрытие
+                    if (data.IndexOf("<TheEnd>") > -1)
+                    {
+                        Console.WriteLine("Connection closed");
+                        break;
+                    }
+
+                    s.Shutdown(SocketShutdown.Both);
+                    s.Close();
+                }
+            } 
+            catch (Exception exc)
+            {
+                Console.WriteLine(exc.ToString());
+            }
+        }
+    }
+}

+ 26 - 0
Lab20-Server/Properties/AssemblyInfo.cs

@@ -0,0 +1,26 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes. 
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("Lab20-Server")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("${AuthorCopyright}")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly, 
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]

+ 39 - 0
Lab20-ServerMultiThread/Lab20-ServerMultiThread.csproj

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProjectGuid>{F9C1E04C-69FF-4FFC-A4A4-033807DE954E}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>Lab20ServerMultiThread</RootNamespace>
+    <AssemblyName>Lab20-ServerMultiThread</AssemblyName>
+    <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ExternalConsole>true</ExternalConsole>
+    <PlatformTarget>x86</PlatformTarget>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ExternalConsole>true</ExternalConsole>
+    <PlatformTarget>x86</PlatformTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+</Project>

+ 73 - 0
Lab20-ServerMultiThread/Program.cs

@@ -0,0 +1,73 @@
+using System;
+using System.Text;
+using System.Net;
+using System.Net.Sockets;
+using System.Threading;
+
+namespace Lab20ServerMultiThread
+{
+    class Program
+    {
+        public static void Main(string[] args)
+        {
+            TcpListener server = null;
+            try
+            {
+                // Threading..
+                int maxThreadCount = Environment.ProcessorCount * 4;
+                ThreadPool.SetMaxThreads(maxThreadCount, maxThreadCount);
+                ThreadPool.SetMinThreads(2, 2);
+
+                // Server creation
+                int port = 9999;
+                int counter = 0;
+                IPAddress localAddr = IPAddress.Parse("127.0.0.1");
+                server = new TcpListener(localAddr, port);
+                server.Start();
+
+                Console.WriteLine($"Server started on 127.0.0.1:{port}. Thread count: {maxThreadCount}");
+
+                // Listining for clients
+                while (true)
+                {
+                    Console.WriteLine("Waiting for connection...");
+                    ThreadPool.QueueUserWorkItem(ClientProcessing, server.AcceptTcpClient());
+                    Console.WriteLine($"Accepted connection #{counter}");
+                    counter++;
+                }
+            }
+            catch (SocketException exc)
+            {
+                Console.WriteLine($"Socket exception: {exc}");
+            }
+            finally
+            {
+                server.Stop();
+            }
+        }
+
+        /// <summary>
+        /// Processes accepted client
+        /// </summary>
+        /// <param name="state">State.</param>
+        private static void ClientProcessing(object state)
+        {
+            byte[] bytes = new byte[256];
+            string data = null;
+            TcpClient tcpClient = state as TcpClient;
+
+            // Get incoming info
+            NetworkStream stream = tcpClient.GetStream();
+            int i;
+            while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
+            {
+                data = Encoding.ASCII.GetString(bytes, 0, i).ToUpper();
+
+                // Echo uppered info
+                byte[] msg = Encoding.ASCII.GetBytes(data);
+                stream.Write(msg, 0, msg.Length);
+            }
+            tcpClient.Close();
+        }
+    }
+}

+ 26 - 0
Lab20-ServerMultiThread/Properties/AssemblyInfo.cs

@@ -0,0 +1,26 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes. 
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("Lab20-ServerMultiThread")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("${AuthorCopyright}")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly, 
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]

+ 24 - 0
MDKlabs.sln

@@ -11,6 +11,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab19-3", "Lab19-3\Lab19-3.
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab19-4", "Lab19-4\Lab19-4.csproj", "{AF65BDEA-C029-477E-938A-02EFCA212A5C}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab20-ServerSingleThread", "Lab20-Server\Lab20-ServerSingleThread.csproj", "{FB2175A6-FABB-4E02-9481-836B1593B2EB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab20-ClientSingleThread", "Lab20-Client\Lab20-ClientSingleThread.csproj", "{1BC77094-79CB-4B27-B40E-E87F72E92D82}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab20-ServerMultiThread", "Lab20-ServerMultiThread\Lab20-ServerMultiThread.csproj", "{F9C1E04C-69FF-4FFC-A4A4-033807DE954E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab20-ClientMultiThread", "Lab20-ClientMultiThread\Lab20-ClientMultiThread.csproj", "{772C2BE2-6506-4130-8318-E6CC64A45E45}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|x86 = Debug|x86
@@ -37,6 +45,22 @@ Global
 		{AF65BDEA-C029-477E-938A-02EFCA212A5C}.Debug|x86.Build.0 = Debug|x86
 		{AF65BDEA-C029-477E-938A-02EFCA212A5C}.Release|x86.ActiveCfg = Release|x86
 		{AF65BDEA-C029-477E-938A-02EFCA212A5C}.Release|x86.Build.0 = Release|x86
+		{FB2175A6-FABB-4E02-9481-836B1593B2EB}.Debug|x86.ActiveCfg = Debug|x86
+		{FB2175A6-FABB-4E02-9481-836B1593B2EB}.Debug|x86.Build.0 = Debug|x86
+		{FB2175A6-FABB-4E02-9481-836B1593B2EB}.Release|x86.ActiveCfg = Release|x86
+		{FB2175A6-FABB-4E02-9481-836B1593B2EB}.Release|x86.Build.0 = Release|x86
+		{1BC77094-79CB-4B27-B40E-E87F72E92D82}.Debug|x86.ActiveCfg = Debug|x86
+		{1BC77094-79CB-4B27-B40E-E87F72E92D82}.Debug|x86.Build.0 = Debug|x86
+		{1BC77094-79CB-4B27-B40E-E87F72E92D82}.Release|x86.ActiveCfg = Release|x86
+		{1BC77094-79CB-4B27-B40E-E87F72E92D82}.Release|x86.Build.0 = Release|x86
+		{F9C1E04C-69FF-4FFC-A4A4-033807DE954E}.Debug|x86.ActiveCfg = Debug|x86
+		{F9C1E04C-69FF-4FFC-A4A4-033807DE954E}.Debug|x86.Build.0 = Debug|x86
+		{F9C1E04C-69FF-4FFC-A4A4-033807DE954E}.Release|x86.ActiveCfg = Release|x86
+		{F9C1E04C-69FF-4FFC-A4A4-033807DE954E}.Release|x86.Build.0 = Release|x86
+		{772C2BE2-6506-4130-8318-E6CC64A45E45}.Debug|x86.ActiveCfg = Debug|x86
+		{772C2BE2-6506-4130-8318-E6CC64A45E45}.Debug|x86.Build.0 = Debug|x86
+		{772C2BE2-6506-4130-8318-E6CC64A45E45}.Release|x86.ActiveCfg = Release|x86
+		{772C2BE2-6506-4130-8318-E6CC64A45E45}.Release|x86.Build.0 = Release|x86
 	EndGlobalSection
 	GlobalSection(MonoDevelopProperties) = preSolution
 		Policies = $0