вот пример кода сервера авторизации который я набросал
Синтаксис:
Используется csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace autorization
{
class Program
{
static string log = null;
static string pas = null;
static void Main(string[] args)
{
start_server();
}
static void start_server()
{
// Устанавливаем для сокета локальную конечную точку
IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8005);
// Создаем сокет Tcp/Ip
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// Назначаем сокет локальной конечной точке и слушаем входящие сокеты
try
{
server.Bind(ipPoint);
server.Listen(10);
Console.WriteLine("Сервер запущен.");
// Начинаем слушать соединения
while (true)
{
Console.WriteLine("Ожидаем соединение через порт {0}", ipPoint);
// Программа приостанавливается, ожидая входящее соединение
Socket client = server.Accept();
// Мы дождались клиента, пытающегося с нами соединиться
byte[] receive = new byte[1024];
for (int i = 0; i < receive.Length; i++) { receive[i] = 0; }
client.Receive(receive);
string message = Encoding.UTF8.GetString(receive);
//Указываем на конец строки с нужными данными
int count = message.IndexOf(";;;5");
if (count == -1) { continue; }
//Создаем переменную, в которой будет храниться очищенное сообщение
string clear_message = "";
for (int i = 0; i < count; i++) { clear_message += message[i]; }
//Начинаем делить очищенное сообщение на отдельные части
string[] split = clear_message.Split(':');
log = split[0];
pas = split[1];
Console.WriteLine("Подключение клиента: " + "Логин: " + log + " Пароль: " + pas);
if (log == "admin" && pas == "1234")
{
Console.WriteLine("Данные успешно подтверждены.");
// Отправляем ответ клиенту
string msg = "yes" + ";;;5";
byte[] send = new byte[1024];
send = Encoding.UTF8.GetBytes(msg);
client.Send(send);
}
else
{
Console.WriteLine("Указанные Логин или Пароль не найдены в Базе Данных.");
// Отправляем ответ клиенту
string msg = "no" + ";;;5";
byte[] send = new byte[1024];
send = Encoding.UTF8.GetBytes(msg);
client.Send(send);
}
Console.WriteLine("Сервер завершил соединение с клиентом.");
client.Shutdown(SocketShutdown.Both);
client.Close();
}
}
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace autorization
{
class Program
{
static string log = null;
static string pas = null;
static void Main(string[] args)
{
start_server();
}
static void start_server()
{
// Устанавливаем для сокета локальную конечную точку
IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8005);
// Создаем сокет Tcp/Ip
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// Назначаем сокет локальной конечной точке и слушаем входящие сокеты
try
{
server.Bind(ipPoint);
server.Listen(10);
Console.WriteLine("Сервер запущен.");
// Начинаем слушать соединения
while (true)
{
Console.WriteLine("Ожидаем соединение через порт {0}", ipPoint);
// Программа приостанавливается, ожидая входящее соединение
Socket client = server.Accept();
// Мы дождались клиента, пытающегося с нами соединиться
byte[] receive = new byte[1024];
for (int i = 0; i < receive.Length; i++) { receive[i] = 0; }
client.Receive(receive);
string message = Encoding.UTF8.GetString(receive);
//Указываем на конец строки с нужными данными
int count = message.IndexOf(";;;5");
if (count == -1) { continue; }
//Создаем переменную, в которой будет храниться очищенное сообщение
string clear_message = "";
for (int i = 0; i < count; i++) { clear_message += message[i]; }
//Начинаем делить очищенное сообщение на отдельные части
string[] split = clear_message.Split(':');
log = split[0];
pas = split[1];
Console.WriteLine("Подключение клиента: " + "Логин: " + log + " Пароль: " + pas);
if (log == "admin" && pas == "1234")
{
Console.WriteLine("Данные успешно подтверждены.");
// Отправляем ответ клиенту
string msg = "yes" + ";;;5";
byte[] send = new byte[1024];
send = Encoding.UTF8.GetBytes(msg);
client.Send(send);
}
else
{
Console.WriteLine("Указанные Логин или Пароль не найдены в Базе Данных.");
// Отправляем ответ клиенту
string msg = "no" + ";;;5";
byte[] send = new byte[1024];
send = Encoding.UTF8.GetBytes(msg);
client.Send(send);
}
Console.WriteLine("Сервер завершил соединение с клиентом.");
client.Shutdown(SocketShutdown.Both);
client.Close();
}
}
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
}
}
}