|
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
|
|
Получить количество байт, готовых к считыванию из сокета03.01.2016, 19:39. Показов 5744. Ответов 25
Метки нет (Все метки)
Как можно получить кол-во байт готовых к считыванию из TCP сокета?
Добавлено через 8 минут в общем нужен аналог метода available() из boost::asio только на winsock
0
|
|
| 03.01.2016, 19:39 | |
|
Ответы с готовыми решениями:
25
Прочитать несколько байт с сокета Получить количество байт, записанных в com-порт (асинхронный режим) |
|
Ушел с форума
|
||
| 08.01.2016, 15:21 | ||
Сборка данных в поток - это детали работы TCP, для клиентов и серверов, которые используют TCP, это все совершенно прозрачно. Я отправляю send-ом 50 байт, кто-то на другой стороне их читает recv-ом, за раз, за два, за двадцать пять - не важно. 50 байт отправили, в итоге 50 прочитали. Получите и распишитесь. Все. И TCP - это потоковый протокол, а не пакетный. Здесь границ данных не существует в принципе. Сетевая подсистема разбита на уровни, их обычно называют сетевым стеком. Уровни изолированы друг от друга, каждый уровень работает по своим правилам и как бы не видит того, что происходит ниже. На уровне TCP нет таких абстракций, как пакет, там лишь поток данных туда и сюда. На уровнях ниже - да, там данные собираются в сегменты, бьются на пакеты и кадры, шифруются, сжимаются, перемешиваются, дублируются, теряются и т.д., но это уже детали реализации, которые клиентов и серверов, работающих через TCP, совершенно не заботят.
1
|
||
|
50 / 49 / 10
Регистрация: 24.01.2010
Сообщений: 225
|
|
| 08.01.2016, 18:34 | |
|
1) читает из очереди. там кольцевой буфер(логически).
2) данные вычитываются по размеру который задаёт юзер(вы в данном случае), и записываются в хвост размером которые пришли по сети(в идеале вы видите ваши порции пропихнутых данных, НО! если ваш передатчик в Америке, либо началась ДДОС атака - вот тут и начнутся те нюансы о которых вам рассказывают). Т.е. не идеальные условия связи(читай популярную литературу про заторы, потери IP пакетов, дефрагментацию IP пакетов и их сборку, максимально допустимый размер IP пакетов и запрет на дефрагментацию). 3) протокол TCP потоковый это по ОПРЕДЕЛЕНИЮ см. RFC по данной тематике. Если вам необходимы пакеты - Вы можете спуститься на уровень UDP. Но он гарантирует только отправку в сеть, так-же согласно RFC. кстати говоря - предполагать что через TCP вы работаете как с пакетами - это есть распространённая, типичная ошибка. И именно она в большинстве случаев является причиной отказов работы клиент-серверных систем при ударных нагрузках и в неблагоприятных условиях. удачи вам (круглый)
1
|
|
|
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
|
|
| 08.01.2016, 19:04 [ТС] | |
|
афигеть, мне это казалось таким очевидным а оказалось что я ошибался
0
|
|
| 10.01.2016, 16:17 | |
|
ТС прочитай про MTU
https://ru.wikipedia.org/wiki/... ssion_unit
0
|
|
|
50 / 49 / 10
Регистрация: 24.01.2010
Сообщений: 225
|
|
| 10.01.2016, 16:44 | |
|
я Вам большее скажу (чиссо из практики):
Если по пути следования нет никаких девайсов способных зарезать длину IP(v4) пакета - то его длина(Total Length) может быть и 65535(макс. для поля длины) байт в лёгкую. (круглый)
0
|
|
|
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
|
|
| 14.07.2016, 18:04 [ТС] | |
|
Всем привет, апну темку новым вопросом о tcp
Допустим есть 2+ клиента пишущих в 1 сокет асинхронно, размер каждого пакета 18 - 4096 кб, возможно ли что при приеме через этот единственный сокет я приму данные в перемешку, например я считал 40 ( пусть 1-й послал 22, 2-й 18)Кбайт где первые 3 будут от 1-го клиента потом 20 от 2-го и т.д. или все таки поток будет выглядеть как 22кб посланных 1-ым и 18 2-ым И если все таки поток будет "правильный", то возможно ли такое что байты перепутаются при отправке ?)
0
|
|
| 14.07.2016, 18:04 | |
|
Как из сокета вернуть число байт, которое пришло? Дан массив из 10 байт. Посчитать количество байт, в которых сброшены 6 и 4 биты
Дан массив из 10 байт. Посчитать количество байт содержащих ровно три единицы Дан массив из 6 байт. Посчитать количество байт число единиц, в которых не превышает 3. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|