Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Порт   Найти похожие ветки 

 
Klopan ©   (2004-09-07 19:33) [0]

как узнать что например порт 4500 используется другим приложением


 
Rouse_ ©   (2004-09-07 20:31) [1]

Порт на своей или удаленной машине?


 
Klopan ©   (2004-09-07 20:43) [2]

на своей


 
Rouse_ ©   (2004-09-08 10:09) [3]

Вот этот код покажет тебе все открытые порты на твоей машине:

////////////////////////////////////////////////////////////////////////////////
//
//  ****************************************************************************
//  * Unit Name : Unit1
//  * Purpose   : Демо получения ТСР статистики
//  * Author    : Александр (Rouse_) Багель
//  * Version   : 1.00
//  ****************************************************************************
//

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Winsock;

type
 TForm1 = class(TForm)
   Memo1: TMemo;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 end;

 PTMibTCPRow = ^TMibTCPRow;
 TMibTCPRow = packed record
   dwState: DWORD;
   dwLocalAddr: DWORD;
   dwLocalPort: DWORD;
   dwRemoteAddr: DWORD;
   dwRemotePort: DWORD;
 end;

 PTMibTCPTable = ^TMibTCPTable;
 TMibTCPTable = packed record
   dwNumEntries: DWORD;
   Table: array[0..0] of TMibTCPRow;
 end;

 function GetTcpTable( pTCPTable: PTMibTCPTable; var pDWSize: DWORD;
   bOrder: BOOL): DWORD; stdcall; external "IPHLPAPI.DLL";

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 Size: DWORD;
 TCPTable: PTMibTCPTable;
 I: DWORD;
begin
 GetMem(TCPTable, SizeOf(TMibTCPTable));
 Size := 0;
 if GetTcpTable(TCPTable, Size, True) = ERROR_INSUFFICIENT_BUFFER then
 begin
   FreeMem(TCPTable);
   GetMem(TCPTable, Size);
   if GetTcpTable(TCPTable, Size, True) = NO_ERROR then
   for I := 0 to TCPTable^.dwNumEntries - 1 do
     Memo1.Lines.Add(Format("%s:%d", [inet_ntoa(in_addr(TCPTable^.Table[I].dwLocalAddr)),
       TCPTable^.Table[I].dwLocalPort]));
 end;
end;

end.


 
Rouse_ ©   (2004-09-08 10:11) [4]

Точнее процедура правильней должна выглядеть так:

procedure TForm1.Button1Click(Sender: TObject);
var
 Size: DWORD;
 TCPTable: PTMibTCPTable;
 I: DWORD;
begin
 GetMem(TCPTable, SizeOf(TMibTCPTable));
 try
   Size := 0;
   if GetTcpTable(TCPTable, Size, True) <> ERROR_INSUFFICIENT_BUFFER then Exit;
 finally
   FreeMem(TCPTable);
 end;
 GetMem(TCPTable, Size);
 try
   if GetTcpTable(TCPTable, Size, True) = NO_ERROR then
   for I := 0 to TCPTable^.dwNumEntries - 1 do
     Memo1.Lines.Add(Format("%s:%d", [inet_ntoa(in_addr(TCPTable^.Table[I].dwLocalAddr)),
       TCPTable^.Table[I].dwLocalPort]));
 finally
   FreeMem(TCPTable);
 end;
end;


 
Klopan ©   (2004-09-08 21:09) [5]

спасибо большущщее!



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.059 c
3-1098091565
Belkova
2004-10-18 13:26
2004.11.14
Поиск


14-1098496438
SergP
2004-10-23 05:53
2004.11.14
Зацените перл...


1-1099211684
Arnold
2004-10-31 11:34
2004.11.14
Как ограничить ввод в TEdit.


6-1092936315
Фёдор Мегатронов
2004-08-19 21:25
2004.11.14
Две функции возвращают белеберду в место размера файла в инете


8-1092378491
Maxx217
2004-08-13 10:28
2004.11.14
Масштабирование картинки