Здравствуйте! Год с лишним изучаю C#, писал проекты на WF, Unity3D. дело дошло до сетевого программирования. Начал изучать его с книжкой "Библия C#". Решил попробовать написать небольшое чат-приложение. Опираясь на пример в данной книге, я смог написать несколько строк кода сервера (до клиента дело не дошло), и у меня возникли вопросы (возможно, они покажутся глупыми, но я пытался искать в интернете информацию о написании сервера на C#, не встречал подобных примеров, а сам в сетевой части я пока что полный ноль, буду благодарен, если посоветуете дополнительную литературу):
private void ServerStart_Click(object sender, EventArgs e)
{
if (!(String.IsNullOrWhiteSpace(portEnter.Text) || (server!=null && server.Connected)))
{
port = Int32.Parse(portEnter.Text);
server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
EndPoint endPoint = new IPEndPoint(IPAddress.Any, port);
try
{
server.Bind(endPoint);
server.Listen(20);
}
catch (Exception exc)
{
MessageBox.Show("Возникла ошибка при запуске сервера: "+ exc.Message);
return;
}
server.BeginAccept(new AsyncCallback(AsyncAccept),server);
}
else
{
MessageBox.Show("Сервер невозможно запустить. Возможно, сервер уже запущен или отсутствует значение порта для запуска.");
}
}
void AsyncAccept(IAsyncResult result)
{
Socket serverSocket = (Socket)result.AsyncState;
SocketData data = new SocketData();
data.clientConnection = serverSocket.EndAccept(result);
data.clientConnection.BeginReceive(data.buffer, 0, 1024, SocketFlags.None,new AsyncCallback(AsyncRead), data);
}
void AsyncRead(IAsyncResult result)
{
SocketData data = (SocketData)result.AsyncState;
data.clientConnection.EndReceive(result);
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости