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