информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеВсе любят медСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 С наступающим 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Net] Кто разбирается в сокетах подскажите плиз! 17.12.01 16:13  
Автор: NeuronViking Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Перхватываю вызов send(s,buf,len,flags) ... как используя парметры этой функции узнать полный размер посылаемых данных?! т.е. персылается какиянть инфа, в результате прога вызывает несколько раз функцию send , вот один из таких вызовов я перехватил. Как узнать размер всей пересылаемой инфы?! Возможно ли вообще такое?! Может есть какиенть функции которые позволяют по описателю сокета получить размер всего буфера(не buf!) и еще какуюнть инфу?!
[Net] Кто разбирается в сокетах подскажите плиз! 17.12.01 16:28  
Автор: Wizard(2) Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Перхватываю вызов send(s,buf,len,flags) ... как используя
> парметры этой функции узнать полный размер посылаемых
> данных?! т.е. персылается какиянть инфа, в результате
> прога вызывает несколько раз функцию send , вот один из
> таких вызовов я перехватил. Как узнать размер всей
> пересылаемой инфы?! Возможно ли вообще такое?! Может есть
> какиенть функции которые позволяют по описателю сокета
> получить размер всего буфера(не buf!) и еще какуюнть инфу?!

Помоему нет.

Хотя, когда я пересылал пакеты, то делал это так: вначале пакета добавляю заголовок, в котором содержиться необходимая мне инфа (вт.ч. и длина пакета). Т.е. если перехватить первый кусок пакета в котором будет заголовок, то зная структуру заголовка можно определить длину.

Таким образом, если ты перехватил первый пакет и знаешь структуру пакету, в котором указана длина то да.
[Net] В таком случае, как сервер узнает скоко данных передает клиент?!!! 18.12.01 07:23  
Автор: NeuronViking Статус: Незарегистрированный пользователь
<"чистая" ссылка>
[C++] [Net] В таком случае, как сервер узнает скоко данных передает клиент?!!! 19.12.01 01:35  
Автор: SomeThing Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Во-первых, речь ни о каких заголовках в сокетах вообще не идет. Функция send просто передает содержимое buf, а дальше все делает драйвер TCP/IP.
Так что перехват первого пакета на уровне драйвера даст тебе размер передаваемых данных.
Во-вторых, серверу до фени, сколько ты всего передаешь данных. Сокет на знает размер данных каждого конкретного send и работает до дисконекта. Фрагментацией занимается опять же драйвер.
Если подитожить, то ответ на твой вопрос: НИКАК НА УРОВНЕ СОКЕТОВ.
[Net] Я думаю, что... 18.12.01 11:02  
Автор: Wizard(2) Статус: Незарегистрированный пользователь
<"чистая" ссылка>
возможны такие варианты:
1. Клиент сначала посылает размер всех данных, а после этого отсылает данные.
2. Клиент просто посылает все данные. после того как он их послал сообщает это серверу (посылает FIN). если клиенту и серверу нечего больше посылать, то соединение закрывается (по-моему так происходит при работе с интернет).
3. Возможно другие варианты, но я их не знаю :(.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach