Я работаю над клиент-серверным приложением.TCPClient - отправка и получение перекрытия
Я использую TCPClient для сервера и клиента.
Сервер прослушивает и отвечает и клиент будет отправлять и получать. Каждый ответ с сервера содержит различную длину сообщения.
У клиента 2 запроса. Один из них - запрос ping, а другой - запрос данных.
Я создал поток для ping-сервера каждые 10 секунд.
Запрос данных отправляется клиентом, когда пользователь нажимает кнопку отправки.
Сервер отвечает на запрос ping, отправив 2 байта обратно клиенту.
Сервер отвечает на запрос данных, отправив обратно 8 байтов.
Вот проблема, с которой я сталкиваюсь.
Пинг-поток иногда посылает запрос на сервер одновременно с нажатием кнопки отправки.
Теперь метод запроса данных считывает из сокета и ожидает 8 байтов, но только получение 2 байтов, таким образом, долгое время зависает.
вот отрывок из метода запроса данных:
byteBuffer = new byte[8];
remainingBytes = byteBuffer.Length;
numberOfBytesRead = netStream.Read(byteBuffer, index, remainingBytes);
вот фрагмент из пинг нити:
byteBuffer = new byte[2];
remainingBytes = byteBuffer.Length;
numberOfBytesRead = netStream.Read(byteBuffer, index, remainingBytes);
Что я могу сделать так, чтобы клиент знает, какой ответ идет какой метод?
Благодаря