recv (sh , buff , 5000, 0)
. Предположим, что мой бафф mallocated для x байтов. Как я могу писать полученные байты всегда с самого начала? Я хочу сказать, что хочу начать с *buff
, а не с buff+x
.recv - заполнение всегда первых байтов
2
A
ответ
1
recv
начинает всегда записывать полученные данные по указанному адресу (* buff).
Для того, чтобы ваш код надежным вы должны прочитать в цикле, пока все данные не пришли (это означает, что последующие вызовы должны написать buff+received bytes
.
Смотрите также Handling partial return from recv() TCP in C
Смежные вопросы
- 1. заполнение ответов в recv() api
- 2. Чтение первых байтов файла
- 3. Чтение первых 4 байтов файла
- 4. Удаление первых байтов в файле
- 5. winsock recv() всегда возвращает -1
- 6. Заполнение массива байтов в Java
- 7. Как сделать хэш первых N байтов файла?
- 8. Чтение первых байтов открытого файла в Python
- 9. Чтение первых 10 байтов файла в Java
- 10. C++ Socket recv не получает правильное количество байтов?
- 11. Программирование сокетов C: recv всегда сбой
- 12. Socket client recv() всегда возвращает 0
- 13. Функция recv всегда дает мне тот же буфер
- 14. Количество байтов, написанных всегда -1
- 15. понимание socket recv поведение
- 16. Как перевернуть заполнение каждой сущности массива байтов?
- 17. Всегда в CheckboxColumn Заполнение DataGridView
- 18. C socket recv возвращает количество байтов, но ничего в буфере
- 19. C программа зависает, когда recv() не ожидаемое количество байтов
- 20. Вопрос о send/recv
- 21. Причины медленного вызова recv
- 22. Извлечение первых нескольких байтов из огромного файла через $ http.get
- 23. Чтение первых двух байтов из файла эффективно - Golang
- 24. Чтение первых N байтов файла как InputStream в Java?
- 25. Есть ли заявленное значение первых восьми байтов файлов .png?
- 26. Почему free() устанавливает только 8 первых байтов в ноль?
- 27. VB Raw TCP Чтение только чтение первых 5 байтов
- 28. flex lexer переписывание первых двух байтов буфера stdin
- 29. Чтение первых четырех байтов из ByteBuffer, а затем их запись?
- 30. Каков наилучший способ получить Int32 из первых четырех байтов GUID?
Можете ли вы попытаться уточнить, что дальше? Что вы подразумеваете под «писать», здесь «buff + x» никогда не будет иметь смысла, это будет первый байт * после * вашего выделенного пространства, и, таким образом, вы ничего не должны касаться ... – unwind
Если 'buff 'выделяется из кучи, и вы не изменили указатель с момента выделения, он укажет на начало выделенной памяти. Поэтому, когда вы вызываете' recv' с 'buff', тогда' recv' будет писать th e первый полученный байт в первый байт, на который указывает 'buff'. –
Вы делаете это, показывая. Оператор 'recv' в вашем вопросе пытается прочитать 5000 байт, на которые указывает' buff'. – alk