Я не понимаю, как это могло бы работать. Нет перегрузки приема только с тремя параметрами. Кроме того, вы поместили bytesReceived.Length в неправильное положение.
s.Receive(bytesReceived, 0, bytesReceived.Length);
Редактировать: Ооо. Вы используете ноль для SocketFlags. Не используйте магические числа.
Тогда ничто не говорит о том, что 1024 байта должны приходить каждый раз, TCP не построен таким образом. TCP только гарантирует, что все байты поступят, а не когда и как.
Вы должны либо знать, сколько байтов вы собираетесь получить, либо отключиться на другом конце, когда все будет отправлено.