| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Разьясните вызов GetTcpTable... |
| Автор: Spawn 1.12.2002, 04:58 |
| Я мучаюсь с импортом функции уже недели 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 ); } } |
| Автор: Step 4.12.2002, 03:10 | ||
Вообщето передать нулл в качесте буфера, это до п..ца глупа, где ты эту прогу вытащил. |
| Автор: Andy_user 5.12.2002, 00:33 |
| To Step Цитата GetTcpTable( NULL, &dwSize, TRUE ); Вообщето передать нулл в качесте буфера, это до п..ца глупа, где ты эту прогу вытащил. To Step Прежде, чем задавать покровительственные вопросы, попытайтесь понять, что заранее неизвестно какого размера буфер понадобиться, и поэтому первый вызов функции GetTcpTable c NULL в качестве первого аргумента и служит для определения размера этого буфера. |