На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Сокеты , немного вопросов
    Здрасте, возникло несколько воросов о сокетах. Мне требуется контролировать данные другой программы. Скачал MJsniffer в качестве примера.

    ExpandedWrap disabled
          using (Socket socket = new Socket (AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP))
          {
              socket.Bind (new IPEndPoint (IPAddress.Parse ("10.10.13.44"), 0));
              socket.SetSocketOption (SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);
              socket.IOControl (IOControlCode.ReceiveAll, new byte[4] { 1, 0, 0, 0 }, new byte[4]);
       
              ...
       
              Console.ReadKey ();
          }


    Собственно вопросы:

    1) Такой сокет читает все данные подряд, как то можно на стадии создания сокета уточнить какие именно пакеты мне нужны, т.е. мне известен порт и тип протокола(Tcp). Или это только из парсинга заголовков IP и Tcp пакетов узнать можно?

    2) Как сделать так что бы сокет читал данные с любых адресов. Если IPAddress.Parse ("10.10.13.44") заменить на IPAddress.Any, то на строке socket.IOControl(...) выскакивает ошибка о недопустимых параметрах.

    3) И ещё, как не просто слушать данные с порта, но ещё перехватывать их, т.е. изменять и пускать в программу дальше?

    п.с. Буду рад любой приличной литературе по сокетам, желательно на русском. В мсдн ваще с этим глухо.
      TerraGhost
      попробуй поискать готовые примеры на codeproject
        Оттуда и качал примеры снифферов
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0165 ]   [ 16 queries used ]   [ Generated: 19.04.24, 20:57 GMT ]