TCP client and server
This commit is contained in:
18
DTLib.Network/FSP2/Client.cs
Normal file
18
DTLib.Network/FSP2/Client.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System.Net;
|
||||
|
||||
namespace DTLib.Network.FSP2;
|
||||
|
||||
public class Client : IDisposable
|
||||
{
|
||||
private TCPSocketClient _tcp;
|
||||
|
||||
public Client(IPEndPoint serverEndpoint)
|
||||
{
|
||||
_tcp = new TCPSocketClient(serverEndpoint);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_tcp.Dispose();
|
||||
}
|
||||
}
|
||||
13
DTLib.Network/FSP2/Request.cs
Normal file
13
DTLib.Network/FSP2/Request.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
namespace DTLib.Network.FSP2;
|
||||
|
||||
public enum RequestType
|
||||
{
|
||||
Message,
|
||||
DownloadFile,
|
||||
UploadFile
|
||||
}
|
||||
|
||||
public record Request(RequestType Type)
|
||||
{
|
||||
|
||||
}
|
||||
13
DTLib.Network/FSP2/Response.cs
Normal file
13
DTLib.Network/FSP2/Response.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
namespace DTLib.Network.FSP2;
|
||||
|
||||
public enum ResponseStatus
|
||||
{
|
||||
OK,
|
||||
InvalidRequest,
|
||||
AccessDenied
|
||||
}
|
||||
|
||||
public record Response(ResponseStatus Status)
|
||||
{
|
||||
|
||||
}
|
||||
26
DTLib.Network/FSP2/Server.cs
Normal file
26
DTLib.Network/FSP2/Server.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using System.Net;
|
||||
|
||||
namespace DTLib.Network.FSP2;
|
||||
|
||||
public class Server : IDisposable
|
||||
{
|
||||
|
||||
private TCPSocketServer _tcp;
|
||||
private readonly Func<Request, Response> _requestHandler;
|
||||
|
||||
public Server(IPEndPoint localEndpoint, Func<Request, Response> requestHandler, Action<Exception> exceptionHandler)
|
||||
{
|
||||
_requestHandler = requestHandler;
|
||||
_tcp = new TCPSocketServer(localEndpoint, HandleFSP2Connection, exceptionHandler);
|
||||
}
|
||||
|
||||
void HandleFSP2Connection(TCPSocketServer.ConnectionParams p)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_tcp.Dispose();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user