59 lines
1.4 KiB
C#
59 lines
1.4 KiB
C#
using System;
|
|||
|
|
using System.Drawing;
|
||
|
|
using System.Net;
|
||
|
|
using System.Net.Sockets;
|
||
|
|
using Server.Helper;
|
||
|
|
|
||
|
|
namespace Server.Connectings;
|
||
|
|
|
||
|
|
public class Listner
|
||
|
|
{
|
||
|
|
private Socket Server { get; set; }
|
||
|
|
|
||
|
|
public int port { get; set; }
|
||
|
|
|
||
|
|
public void Stop()
|
||
|
|
{
|
||
|
|
Server?.Dispose();
|
||
|
|
Methods.AppendLogs("Server", "Stop Listner: " + port, Color.Red);
|
||
|
|
ConsoleLogger.LogWarning($"Stopped listener on port {port}");
|
||
|
|
}
|
||
|
|
|
||
|
|
public Listner(int port)
|
||
|
|
{
|
||
|
|
this.port = port;
|
||
|
|
IPEndPoint localEP = new IPEndPoint(IPAddress.Any, port);
|
||
|
|
Server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||
|
|
Server.ReceiveBufferSize = 512000;
|
||
|
|
Server.SendBufferSize = 512000;
|
||
|
|
Server.Bind(localEP);
|
||
|
|
Server.Listen(2500);
|
||
|
|
Server.BeginAccept(EndAccept, null);
|
||
|
|
Methods.AppendLogs("Server", "Start Listner: " + port, Color.Green);
|
||
|
|
ConsoleLogger.LogSuccess($"Started listener on port {port} - Ready to accept connections");
|
||
|
|
}
|
||
|
|
|
||
|
|
private void EndAccept(IAsyncResult ar)
|
||
|
|
{
|
||
|
|
try
|
||
|
|
{
|
||
|
|
Socket clientSocket = Server.EndAccept(ar);
|
||
|
|
ConsoleLogger.LogNetwork($"New connection attempt from {clientSocket.RemoteEndPoint}");
|
||
|
|
new Clients(clientSocket);
|
||
|
|
}
|
||
|
|
catch (Exception ex)
|
||
|
|
{
|
||
|
|
ConsoleLogger.LogError($"Error accepting connection on port {port}: {ex.Message}");
|
||
|
|
}
|
||
|
|
try
|
||
|
|
{
|
||
|
|
Server.BeginAccept(EndAccept, null);
|
||
|
|
}
|
||
|
|
catch (Exception ex)
|
||
|
|
{
|
||
|
|
ConsoleLogger.LogError($"Error restarting accept on port {port}: {ex.Message}");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|