_acceptThread.Start ();
}
SetupServerSocket () - метод для початкової ініціалізації сервера, реалізація даного методу: ()
{
// Отримуємо інформацію про локальному комп'ютері
IPHostEntrylocalMachineInfo =. GetHostEntry (Dns.GetHostName ()); = new IPEndPoint (. AddressList [0], _port);
// Створюємо сокет, прив'язуємо його до адресою
// і починаємо прослуховування
_serverSocket = newSocket (
myEndpoint.Address.AddressFamily,. Stream, ProtocolType.Tcp);
_serverSocket.Bind (myEndpoint);
_serverSocket.Listen ((int)
SocketOptionName.MaxConnections);
}
AcceptConnection () - метод для обробки підключення користувача, реалізація даного методу:
private void AcceptConnections ()
{(true)
{
// Прінімаемсоедіненіеsocket = _serverSocket.Accept (); connection = new ConnectionInfo ();. Socket = socket;. WriteLine ("Є конект.");
// Створюємо потік для отримання данних.WriteLine ("Створюємо потік для отримання даних.");
connection.Thread = new Thread (ProcessConnection);. Thread.IsBackground = true;. Thread.Start (connection);
// Сохраняемсокет (_connections) "+ _connections.Count.ToString ()); p align="justify">}
}
ProcessConnection () - методу описує процес виконуваності для кожного користувача, реалізація даного методу
private void ProcessConnection (object state)
{connection = (ConnectionInfo) state; [] buffer = new byte [255]; message;. WriteLine ("Ожіданіесообщенія ...");
{(true)
{= new byte [255]; = connection.Socket.Receive (buffer);
if (bytesRead> 0)
{. Write ("Отримано дані розміром");
Console.Write (bytesRead.ToString ());. WriteLine ("байт (а)."); = Encoding.Unicode.GetString (buffer, 0, bytesRead);. WriteLine ( "Зміст:" + message); (ConnectionInfo conn in _connections). Socket.Send (buffer, bytesRead, SocketFlags.None); = String.Empty;
}
}
} (SocketExceptionexc)
{(exc.SocketErrorCode.ToString () == "ConnectionReset")
}
{. WriteLine ("Socket exception:" + exc.SocketErrorCode);
}} (Exception exc)
{. WriteLine ("Exception:" + exc);
}