Реализован сервер на сокетах Беркли.
This commit is contained in:
		
							parent
							
								
									bde0cab650
								
							
						
					
					
						commit
						a7a5c4963b
					
				
							
								
								
									
										25
									
								
								BerklySocketServer/BerklySocketServer.sln
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								BerklySocketServer/BerklySocketServer.sln
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | |||||||
|  |  | ||||||
|  | Microsoft Visual Studio Solution File, Format Version 12.00 | ||||||
|  | # Visual Studio Version 17 | ||||||
|  | VisualStudioVersion = 17.9.34728.123 | ||||||
|  | MinimumVisualStudioVersion = 10.0.40219.1 | ||||||
|  | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CyberSystem", "CyberSystem\CyberSystem.csproj", "{732F06D2-F9CE-40A3-8281-48D7A41E0F79}" | ||||||
|  | EndProject | ||||||
|  | Global | ||||||
|  | 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||||
|  | 		Debug|Any CPU = Debug|Any CPU | ||||||
|  | 		Release|Any CPU = Release|Any CPU | ||||||
|  | 	EndGlobalSection | ||||||
|  | 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||||
|  | 		{732F06D2-F9CE-40A3-8281-48D7A41E0F79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{732F06D2-F9CE-40A3-8281-48D7A41E0F79}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||||
|  | 		{732F06D2-F9CE-40A3-8281-48D7A41E0F79}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||||
|  | 		{732F06D2-F9CE-40A3-8281-48D7A41E0F79}.Release|Any CPU.Build.0 = Release|Any CPU | ||||||
|  | 	EndGlobalSection | ||||||
|  | 	GlobalSection(SolutionProperties) = preSolution | ||||||
|  | 		HideSolutionNode = FALSE | ||||||
|  | 	EndGlobalSection | ||||||
|  | 	GlobalSection(ExtensibilityGlobals) = postSolution | ||||||
|  | 		SolutionGuid = {784A31B7-FBD3-428B-B0DB-459BC6F59E16} | ||||||
|  | 	EndGlobalSection | ||||||
|  | EndGlobal | ||||||
							
								
								
									
										6
									
								
								BerklySocketServer/CyberSystem/App.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								BerklySocketServer/CyberSystem/App.config
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8" ?> | ||||||
|  | <configuration> | ||||||
|  |     <startup>  | ||||||
|  |         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /> | ||||||
|  |     </startup> | ||||||
|  | </configuration> | ||||||
							
								
								
									
										53
									
								
								BerklySocketServer/CyberSystem/CyberSystem.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								BerklySocketServer/CyberSystem/CyberSystem.csproj
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||||
|  |   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | ||||||
|  |   <PropertyGroup> | ||||||
|  |     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||||||
|  |     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||||||
|  |     <ProjectGuid>{732F06D2-F9CE-40A3-8281-48D7A41E0F79}</ProjectGuid> | ||||||
|  |     <OutputType>Exe</OutputType> | ||||||
|  |     <RootNamespace>CyberSystem</RootNamespace> | ||||||
|  |     <AssemblyName>CyberSystem</AssemblyName> | ||||||
|  |     <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> | ||||||
|  |     <FileAlignment>512</FileAlignment> | ||||||
|  |     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> | ||||||
|  |     <Deterministic>true</Deterministic> | ||||||
|  |   </PropertyGroup> | ||||||
|  |   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | ||||||
|  |     <PlatformTarget>AnyCPU</PlatformTarget> | ||||||
|  |     <DebugSymbols>true</DebugSymbols> | ||||||
|  |     <DebugType>full</DebugType> | ||||||
|  |     <Optimize>false</Optimize> | ||||||
|  |     <OutputPath>bin\Debug\</OutputPath> | ||||||
|  |     <DefineConstants>DEBUG;TRACE</DefineConstants> | ||||||
|  |     <ErrorReport>prompt</ErrorReport> | ||||||
|  |     <WarningLevel>4</WarningLevel> | ||||||
|  |   </PropertyGroup> | ||||||
|  |   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | ||||||
|  |     <PlatformTarget>AnyCPU</PlatformTarget> | ||||||
|  |     <DebugType>pdbonly</DebugType> | ||||||
|  |     <Optimize>true</Optimize> | ||||||
|  |     <OutputPath>bin\Release\</OutputPath> | ||||||
|  |     <DefineConstants>TRACE</DefineConstants> | ||||||
|  |     <ErrorReport>prompt</ErrorReport> | ||||||
|  |     <WarningLevel>4</WarningLevel> | ||||||
|  |   </PropertyGroup> | ||||||
|  |   <ItemGroup> | ||||||
|  |     <Reference Include="System" /> | ||||||
|  |     <Reference Include="System.Core" /> | ||||||
|  |     <Reference Include="System.Xml.Linq" /> | ||||||
|  |     <Reference Include="System.Data.DataSetExtensions" /> | ||||||
|  |     <Reference Include="Microsoft.CSharp" /> | ||||||
|  |     <Reference Include="System.Data" /> | ||||||
|  |     <Reference Include="System.Net.Http" /> | ||||||
|  |     <Reference Include="System.Xml" /> | ||||||
|  |   </ItemGroup> | ||||||
|  |   <ItemGroup> | ||||||
|  |     <Compile Include="Server.cs" /> | ||||||
|  |     <Compile Include="Properties\AssemblyInfo.cs" /> | ||||||
|  |   </ItemGroup> | ||||||
|  |   <ItemGroup> | ||||||
|  |     <None Include="App.config" /> | ||||||
|  |   </ItemGroup> | ||||||
|  |   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | ||||||
|  | </Project> | ||||||
							
								
								
									
										36
									
								
								BerklySocketServer/CyberSystem/Properties/AssemblyInfo.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								BerklySocketServer/CyberSystem/Properties/AssemblyInfo.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | |||||||
|  | using System.Reflection; | ||||||
|  | using System.Runtime.CompilerServices; | ||||||
|  | using System.Runtime.InteropServices; | ||||||
|  | 
 | ||||||
|  | // General Information about an assembly is controlled through the following | ||||||
|  | // set of attributes. Change these attribute values to modify the information | ||||||
|  | // associated with an assembly. | ||||||
|  | [assembly: AssemblyTitle("CyberSystem")] | ||||||
|  | [assembly: AssemblyDescription("")] | ||||||
|  | [assembly: AssemblyConfiguration("")] | ||||||
|  | [assembly: AssemblyCompany("")] | ||||||
|  | [assembly: AssemblyProduct("CyberSystem")] | ||||||
|  | [assembly: AssemblyCopyright("Copyright ©  2024")] | ||||||
|  | [assembly: AssemblyTrademark("")] | ||||||
|  | [assembly: AssemblyCulture("")] | ||||||
|  | 
 | ||||||
|  | // Setting ComVisible to false makes the types in this assembly not visible | ||||||
|  | // to COM components.  If you need to access a type in this assembly from | ||||||
|  | // COM, set the ComVisible attribute to true on that type. | ||||||
|  | [assembly: ComVisible(false)] | ||||||
|  | 
 | ||||||
|  | // The following GUID is for the ID of the typelib if this project is exposed to COM | ||||||
|  | [assembly: Guid("732f06d2-f9ce-40a3-8281-48d7a41e0f79")] | ||||||
|  | 
 | ||||||
|  | // Version information for an assembly consists of the following four values: | ||||||
|  | // | ||||||
|  | //      Major Version | ||||||
|  | //      Minor Version | ||||||
|  | //      Build Number | ||||||
|  | //      Revision | ||||||
|  | // | ||||||
|  | // You can specify all the values or you can default the Build and Revision Numbers | ||||||
|  | // by using the '*' as shown below: | ||||||
|  | // [assembly: AssemblyVersion("1.0.*")] | ||||||
|  | [assembly: AssemblyVersion("1.0.0.0")] | ||||||
|  | [assembly: AssemblyFileVersion("1.0.0.0")] | ||||||
							
								
								
									
										49
									
								
								BerklySocketServer/CyberSystem/Server.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								BerklySocketServer/CyberSystem/Server.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | |||||||
|  | using System; | ||||||
|  | using System.Net; | ||||||
|  | using System.Net.Sockets; | ||||||
|  | using System.Text; | ||||||
|  | 
 | ||||||
|  | public class Server | ||||||
|  | { | ||||||
|  |     public static void Main() | ||||||
|  |     { | ||||||
|  |         // Настройка IP-адреса сервера и номера порта. | ||||||
|  |         var serverAddress = IPAddress.Parse("127.0.0.7"); | ||||||
|  |         var serverPort = 8000; | ||||||
|  | 
 | ||||||
|  |         // Создаем наш серверный сокет. | ||||||
|  |         var serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); | ||||||
|  | 
 | ||||||
|  |         // Привязка сокета. | ||||||
|  |         serverSocket.Bind(new IPEndPoint(serverAddress, serverPort)); | ||||||
|  | 
 | ||||||
|  |         // Сервер прослушивает соединения. | ||||||
|  |         serverSocket.Listen(5); | ||||||
|  |         Console.WriteLine("Сервер прослушивает соединения..."); | ||||||
|  | 
 | ||||||
|  |         while (true) | ||||||
|  |         { | ||||||
|  |             // Принятие клиентского соединения. | ||||||
|  |             var clientSocket = serverSocket.Accept(); | ||||||
|  |             Console.WriteLine("Клиент подключен!"); | ||||||
|  | 
 | ||||||
|  |             // Получение сообщения от клиента. | ||||||
|  |             var temp = new byte[1024]; | ||||||
|  |             var clientBytes = clientSocket.Receive(temp); | ||||||
|  |             var clientMessage = Encoding.ASCII.GetString(temp, 0, clientBytes); | ||||||
|  |             Console.WriteLine("Получены данные от клиента: " + clientMessage); | ||||||
|  | 
 | ||||||
|  |             // Обработка и отправка клиенту новых данных.  | ||||||
|  | 
 | ||||||
|  |             // Отправка сообщения обратно клиенту. | ||||||
|  |             //var serverMessage = "Hello, client!"; | ||||||
|  |             //var messageBytes = Encoding.ASCII.GetBytes(serverMessage); | ||||||
|  |             //clientSocket.Send(messageBytes); | ||||||
|  | 
 | ||||||
|  |             // Закрытие соединения. | ||||||
|  |             clientSocket.Shutdown(SocketShutdown.Both); | ||||||
|  |             clientSocket.Close(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user