Попробуйте реализовать массив размером n + 1, где n - это число IP-адресов клиентов. Сохраняйте позицию в массиве как «заблокированный» клиент (предпочтительно первый или последний индекс). Итак, ваш код будет выглядеть примерно так:
if (m_workerSocket[i].Connected)
{
clientIp[0] = m_workerSocket[i]; //index 0 is the blocked client
clientIp[indexOf(m_workerSocket[i])] = null;
m_workerSocket[i].Send(byData);
}
После этого верните ваше состояние массива clientIp
, установив значение mWorkerSocket[i]
в исходное положение и null
в положение 0. Вам потребуется метод, который будет постоянно проверять этот массив, чтобы заблокировать клиент по индексу 0 пока отправляет данные как-то.