Серверу нужно отправить последовательность данных из разных буферов, клиенту - принять. Но последовательный вызов send(...) кладет в сокет все данные сразу и клиент получает их все в первый буфер. Сделал так Код (Text): for(i=0; i<numb; i++) { send(sock, buf_server[i], strlen(buf_server[i]), 0); recv(sock, tmp, 3, 0); } ~~~~~~~~~~~~~~~~~~~~~~~~ for(i=0; i<numb; i++) { recv(sock, buf_client[i], 128, 0); send(sock, "OK", 2, 0); } но это как-то некрасиво. Можно проще? Порылся в MSDN, но ничего не нашел.
Почему не устраивает принятие всего пакета? Отправка последовательности маленьких пакетов сказывается на загруженности сети, так что, скорее всего, тебе нужно пересмотреть дизайн - пусть на низком уровне оно приходит как выгодней системам, а ты уже в прослойке между сокетами и логикой разбирай буфер на свои пакеты и отдавай наверх. То есть, напиши простой протокол, в котором определяй размер пакетов своих данных, введи идентификатор типа данных, если требуется, и т.п. P.S. Хотя можно заставить и систему управлять этим, но всё же не рекомендуется.