информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetЗа кого нас держат?Spanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[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