Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разьясните вызов GetTcpTable... 
:(
    Опции темы
Spawn
Дата 1.12.2002, 04:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 278
Регистрация: 3.6.2002

Репутация: нет
Всего: нет



Я мучаюсь с импортом функции уже недели 2 наверно. Помогите, пожалуйста, хотябы разьяснить назначение строк кода, написанного на 'C', чтобы мне попробовать перевести на Delphi(я на 'С' не программировал еще):

//
// Get the table of TCP endpoints
//
dwSize = 0;
error = GetTcpTable( NULL, &dwSize, TRUE );
if( error != ERROR_INSUFFICIENT_BUFFER ) {

printf("Failed to snapshot TCP endpoints.\n");
PrintError( error );
return -1;
}
tcpTable = (PMIB_TCPTABLE) malloc( dwSize );
error = GetTcpTable( tcpTable, &dwSize, TRUE );
if( error ) {

printf("Failed to snapshot TCP endpoints.\n");
PrintError( error );
return -1;
}
//
// Dump the TCP table
//
for( i = 0; i < tcpTable->dwNumEntries; i++ ) {

if( flags & FLAG_ALL_ENDPOINTS ||
tcpTable->table[i].dwState == MIB_TCP_STATE_ESTAB ) {

sprintf( localaddr, "%s:%s",
GetIpHostName( flags, TRUE, tcpTable->table[i].dwLocalAddr, localname, HOSTNAMELEN),
GetPortName(  flags, tcpTable->table[i].dwLocalPort, "tcp", localport, PORTNAMELEN ));

sprintf( remoteaddr, "%s:%s",
GetIpHostName( flags, FALSE, tcpTable->table[i].dwRemoteAddr, remotename, HOSTNAMELEN),
tcpTable->table[i].dwRemoteAddr ?
GetPortName( flags, tcpTable->table[i].dwRemotePort, "tcp", remoteport, PORTNAMELEN ):
"0" );

printf("%4s\tState:   %s\n", "[TCP]",
TcpState[ tcpTable->table[i].dwState ] );
printf("       Local:   %s\n       Remote:  %s\n",
localaddr, remoteaddr );
}
}
PM MAIL   Вверх
Step
Дата 4.12.2002, 03:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



Цитата
GetTcpTable( NULL, &dwSize, TRUE );

Вообщето передать нулл в качесте буфера, это до п..ца глупа, где ты эту прогу вытащил.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Andy_user
Дата 5.12.2002, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 5.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 2



To Step

Цитата  
GetTcpTable( NULL, &dwSize, TRUE );
Вообщето передать нулл в качесте буфера, это до п..ца глупа, где ты эту прогу вытащил.

To Step
Прежде, чем задавать покровительственные вопросы, попытайтесь понять,
что заранее неизвестно какого размера буфер понадобиться, и поэтому первый вызов функции GetTcpTable c NULL в качестве первого аргумента и служит для определения размера этого буфера.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.