Basic TCP server
This commit is contained in:
		
							
								
								
									
										37
									
								
								authorizer/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								authorizer/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					*.swp
 | 
				
			||||||
 | 
					*.*~
 | 
				
			||||||
 | 
					project.lock.json
 | 
				
			||||||
 | 
					.DS_Store
 | 
				
			||||||
 | 
					*.pyc
 | 
				
			||||||
 | 
					nupkg/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Studio Code
 | 
				
			||||||
 | 
					.vscode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Rider
 | 
				
			||||||
 | 
					.idea
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# User-specific files
 | 
				
			||||||
 | 
					*.suo
 | 
				
			||||||
 | 
					*.user
 | 
				
			||||||
 | 
					*.userosscache
 | 
				
			||||||
 | 
					*.sln.docstates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build results
 | 
				
			||||||
 | 
					[Dd]ebug/
 | 
				
			||||||
 | 
					[Dd]ebugPublic/
 | 
				
			||||||
 | 
					[Rr]elease/
 | 
				
			||||||
 | 
					[Rr]eleases/
 | 
				
			||||||
 | 
					x64/
 | 
				
			||||||
 | 
					x86/
 | 
				
			||||||
 | 
					build/
 | 
				
			||||||
 | 
					bld/
 | 
				
			||||||
 | 
					[Bb]in/
 | 
				
			||||||
 | 
					[Oo]bj/
 | 
				
			||||||
 | 
					[Oo]ut/
 | 
				
			||||||
 | 
					msbuild.log
 | 
				
			||||||
 | 
					msbuild.err
 | 
				
			||||||
 | 
					msbuild.wrn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Studio 2015
 | 
				
			||||||
 | 
					.vs/
 | 
				
			||||||
							
								
								
									
										7
									
								
								authorizer/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								authorizer/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					FROM mcr.microsoft.com/dotnet/core/runtime:3.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY bin/Release/netcoreapp3.1/publish/ App/
 | 
				
			||||||
 | 
					WORKDIR /App
 | 
				
			||||||
 | 
					ENTRYPOINT ["dotnet", "authorizer.dll"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXPOSE 7778/tcp
 | 
				
			||||||
							
								
								
									
										23
									
								
								authorizer/Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								authorizer/Program.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace authorizer
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    class Program
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        static AuthServer server;
 | 
				
			||||||
 | 
					        static void Main(string[] args)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            server = new AuthServer();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            server.Start();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            string input;
 | 
				
			||||||
 | 
					            do
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                input = Console.ReadLine();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            while(input != "stop");
 | 
				
			||||||
 | 
					            server.Stop();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										61
									
								
								authorizer/Server.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								authorizer/Server.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,61 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Threading;
 | 
				
			||||||
 | 
					using System.Net;
 | 
				
			||||||
 | 
					using System.Net.Sockets;
 | 
				
			||||||
 | 
					class AuthServer
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    private int port;
 | 
				
			||||||
 | 
					    private IPAddress address;
 | 
				
			||||||
 | 
					    private TcpListener server;
 | 
				
			||||||
 | 
					    private Thread thread;
 | 
				
			||||||
 | 
					    private bool running = false;
 | 
				
			||||||
 | 
					    public AuthServer(string addr = "0.0.0.0", int p = 7778)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        port = p;
 | 
				
			||||||
 | 
					        address = IPAddress.Parse(addr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        server = new TcpListener(address, port);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    private void ServerLoop()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        while(running)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Console.WriteLine("Waiting for a connection...");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            TcpClient client = server.AcceptTcpClient();
 | 
				
			||||||
 | 
					            Console.WriteLine("Connected!");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Byte[] bytes = new byte[256];
 | 
				
			||||||
 | 
					            String data = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            NetworkStream stream = client.GetStream();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            while((i = stream.Read(bytes, 0, bytes.Length)) != 0)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
 | 
				
			||||||
 | 
					                Console.WriteLine("Recieved: {0}", data);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            client.Close();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void Start()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        server.Start();
 | 
				
			||||||
 | 
					        running = true;
 | 
				
			||||||
 | 
					        ThreadStart entrypoint = new ThreadStart(ServerLoop);
 | 
				
			||||||
 | 
					        thread = new Thread(entrypoint);
 | 
				
			||||||
 | 
					        thread.Start();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    public void Stop()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        running = false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    public void ForceStop()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        thread.Join();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								authorizer/authorizer.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								authorizer/authorizer.csproj
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					<Project Sdk="Microsoft.NET.Sdk">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <PropertyGroup>
 | 
				
			||||||
 | 
					    <OutputType>Exe</OutputType>
 | 
				
			||||||
 | 
					    <TargetFramework>netcoreapp3.1</TargetFramework>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
		Reference in New Issue
	
	Block a user