Главная страница
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.044 c
14-1098699704
Жук
2004-10-25 14:21
2004.11.14
Опять про мобилы


1-1098960063
_Kirill_
2004-10-28 14:41
2004.11.14
Способы хранения на диске большого кол-ва переменных НЕ в БД


1-1099047852
Pentium133
2004-10-29 15:04
2004.11.14
TStringList и IniFile


14-1098444056
S_C
2004-10-22 15:20
2004.11.14
Секурный ввод.


3-1097645176
Slider007
2004-10-13 09:26
2004.11.14
Блокировка записи