clSocket.Send(Encoding.UTF8.GetBytes(message));
private void Read()
{
string message;
int stopInd;
List<byte[]> buffer = new List<byte[]>();
buffer.Add(new byte[512]);
var ii = 0;
byte[] newbufer;
//пока флаг установлен...
while (Connected)
{
int i = 0;
//чтение данных с сервера
try
{
i = clSocket.Receive(buffer[ii]);
var ava = clSocket.Available;
if(ava > 0)
{
newbufer = new byte[ava+1];
ii = 1;
buffer.Add(newbufer);
continue;
}
}
//если любая ошибка - остановка и переподключение
catch (SocketException e)
{
EventVisualLog((int)ClientConnectorCodeCon.ERRCONNECT, e.ToString());
Stop(e, ClientConnectorCodeCon.ERRORLIST);
timer.Start();
return;
}
//если принятых байт больше нуля
if (i > 0)
{
//получение строки
var buf = ConvertToByteArray(buffer);
message = Encoding.UTF8.GetString(buf);
EventVisualLog((int)ClientConnectorCodeCon.CONNECT, "Получил сообщение от сервера: " + message);
try
{
//нахождение индекса окончания строки
stopInd = message.IndexOf("\0");
// выделение сообщения
message = message.Substring(0, stopInd);
// активация СОБЫТИЯ, что пришло сообщение от сервера
EventReciveMessage(message);
}
catch { }
//обнуление буфера
buffer = new List<byte[]>();
buffer.Add(new byte[512]);
ii = 0;
}
else
{
timer.Start();
Stop(new Exception("Сервер разорвал соединение"), ClientConnectorCodeCon.DISCONNECT);
}
}
}
Насколько я понимаю, Вы думаете, что изменится в UI состояние CheckBox-а, то вызовется метод set у DayWeek. Если Вы так действительно думаете, то это не так.