Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Прослушивание траффика


Автор: Timkin 24.11.2005, 01:58
Привет всем!
Такая проблема, что имеется echo-server, который прослушивает некоторый порт. Если подключиться к нему при помощи Hyper Terminal'a, то на экран терминала будут выводиться вся информация по мере получения за счёт того, что Hyper Terminal принимает подтверждения сервера (echo). А как реализовать эту же функцию терминала в своём приложении?
Код приложения такой:
Код

void readDftTraffic() { // функция, пытающаяся читать траффик
  SOCKADDR_IN SockAddr;
  SockAddr.sin_port = htons(getServerPort("DFT"));
  SockAddr.sin_family = AF_INET;
  SockAddr.sin_addr.s_addr = inet_addr(getServerIP("DFT"));
  SOCKET Socket; 
  Socket = socket(AF_INET,SOCK_STREAM,0);
  if (Socket==INVALID_SOCKET) { 
    printf("Socket creation failed.\n");
    return;
  }
  u_long ul = 1U;
  ioctlsocket(Socket, FIONBIO, &ul);
  if (connect(Socket,(SOCKADDR *)(&SockAddr),sizeof(SockAddr))!=0) {
    printf("DFT refused connection.\n");
    closesocket(Socket);
    shutdown(Socket,NULL);
    return;
  }
  int RetVal;
  char buf[512];
  
// здесь должно быть что-то, что заставит прогу получать эхо с сервера   

  closesocket(Socket);
  shutdown(Socket,NULL);
}

void main(void) { // тут ничего интересного
  if (SetupServers()) { 
    WSADATA WsaDat;
    if (WSAStartup(MAKEWORD(1,1),&WsaDat)!=0) { 
      printf("WSA Initialization failed.\n"); 
      system("PAUSE");
      return;
    }
    printf("Trying to read traffic at %s:%d.\nPress any key to exit...\n", getServerIP("DFT"), getServerPort("DFT"));
    do {
      readDftTraffic();
    } while (!kbhit());
    WSACleanup();
  }
  return;
}

Подскажите, плиз, что нужно написать в закомментированной строке, чтобы прога приняла данные с эхо-сервера!! Нужно ли ему что-то отправлять? Что использовать, recv() или recvfrom() и как?

Автор: Timkin 27.11.2005, 23:31
Спасибо, я разобрался.

Автор: JoyEx 9.12.2005, 14:49
Цитата(Timkin @ 27.11.2005, 23:31)
Спасибо, я разобрался.

Пожалуйста! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)