Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 07.08.2017
Сообщений: 9

Сокет принял данных больше, чем размер буфера

27.08.2017, 01:07. Показов 1293. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Этот вопрос скорее всего относиться не к php. Но так как другого раздела я не нашел, а сервер и клиент написаны на php, то задам здесь.

Простой клиент посылает 100 байт. Сервер просто принимает соединение (socket_accept) и больше ничего не делает (sleep на 30 секунд). У серверного сокета буфер приема данных стоит 12 байт.

Что я ожидал увидеть в такой ситуации:
1. Размер окна который сервер отправляет клиенту должен быть 12 байт.
2. После прихода первых 12 байт, так как мое приложение не считывает данные (не освобождает буфер), то клиенту отправляется сегмент подтверждающий о принятие первых 12 байт, но с окном 0 байт. А дальше по протоколу, попытки клиента проверить не изменилось ли окно...

Что произошло:
1. Размер окна как предполагал.
2. По какой-то причине сервер принимает 3 раза по 12 байт, и только на третий сервер выдает окно в 0 байт. По какой причине сервер принял в 3 раза больше данных? Замечу, что если к примеру поменять буфер на 24, то произойдет тоже самое - 3 раза по 24 байта.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.08.2017, 01:07
Ответы с готовыми решениями:

Сокет принял данных больше, чем размер буфера
Простой клиент посылает 100 байт. Сервер просто принимает соединение и больше ничего не делает (данные не считывает, уходит в таймаут). У...

Чем больше размер буфера, тем быстрее программа обрабатывает файл?
Друзья, подскажите, на официальном сайте: =Вот тут docs.embarcadero.com= Первый вопрос: В коде: F, FTwo: System.TextFile; // Почему...

Размер картинки больше чем размер шапки
Всем привет!ребята,у меня размер картинки больше чем высота шапки.как мне сделать так чтобы изображение отображалось полностью? т.е как...

4
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
27.08.2017, 13:55
Как Вы задали размер окна?
Как Вы определили, что отправляется 3 раза по 12 байт?
0
0 / 0 / 0
Регистрация: 07.08.2017
Сообщений: 9
27.08.2017, 16:40  [ТС]
Цитата Сообщение от pav1uxa Посмотреть сообщение
Как Вы задали размер окна?
PHP
1
socket_set_option($sock_server, SOL_SOCKET, SO_RCVBUF, 12);
Цитата Сообщение от pav1uxa Посмотреть сообщение
Как Вы определили, что отправляется 3 раза по 12 байт?


В моем понимании фрейма с 4 по 8 не должно быть, сразу после первых 12 байт сервер должен подтвердить приему и указать окно 0 байт...
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
27.08.2017, 21:00
Глубоко копаете, конечно)) Думаю в разделе какого-нибудь С++ шансов получить ответ было бы больше)

Может буферизация такая...
0
0 / 0 / 0
Регистрация: 07.08.2017
Сообщений: 9
27.08.2017, 22:28  [ТС]
Ок, напишу там.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.08.2017, 22:28
Помогаю со студенческими работами здесь

UDP чат. При отправке сообщения, размер которого больше принимаемого буфера, сервер падает
Всем привет. Учу c# устал от книжек и решил написать простенький чат используя udp сокеты. Получилось так что столкнулся с дурацкой...

Размер буфера для получения данных из сокета
Подскажите как изменить размер буфера для получения данных из сокета? делаю так: public string Read() { byte...

Размер текста больше чем 300
В общем, мне нужен похожий функционал кнопки как на видео, только размер текста должен быть во всю кнопку, как это можно сделать? При...

Размер макета, больше чем экран?
Здравствуйте, пробую писать свой первый макет адаптивную вёрстку ещё не изучала.Правильно ли я делаю, ширина моего макета 1920 пикселей,...

Размер структуры больше чем сумма ее элементов
Здравствуйте! Давно не писал на языке Си. Сейчас возникла необходимость. Не могу найти ответ на вопрос. Пролистал Керригана, Ритчи,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru