Quicklinks
ActiveSocket provides an easy-to-use development interface (SDK) to a variety of IP protocols. By using ActiveSocket, you can very easily create or enhance applications with network features.
ActiveSocket features the following: DNS, FTP, HTTP, HTTPs, ICMP Ping, IP-to-Country, MSN, NTP, RSH, SCP, SFTP, SNMP v1/v2c (Get, GetNext, Set), SNMP Traps, SNMP MIB, SSH, TCP, Telnet, TFTP, UDP, Telnet, Wake-On-LAN and more.
ActiveSocket is compliant with SNMP versions v1 and v2c. Several SNMP data types are supported, including:
ActiveSocket supports the following SNMP trap features:
ActiveSocket can be well integrated into Delphi environments. This document describes how ActiveSocket can be integrated into Delphi projects.
Download the ActiveSocket from the ActiveXperts Download Site and start the installation. The installation guides you through the installation process.
Launch Borland Delphi (for instance 'Delphi 2005') from the Start menu. Choose 'New' from the 'File' menu and select your preferred kind of application, for instance: 'VCL Forms Application - Delphi for Win32'. A new Form is displayed in the workspace.
(Click on the picture to enlarge)
Now that a new project has been created, you must add a reference to ActiveSocket in the project to be able to use the ActiveSocket object. To do so, choose 'Import Component...' from the 'Component' menu. The Import Components' dialog appears. Select 'Import a Type Library':
(Click on the picture to enlarge)
In the 'Registered Type Libraries' page, select 'ActiveSocket 3.1 Type Library' and click 'Next':
(Click on the picture to enlarge)
In the 'Components' page, leave all fields default and click 'Next':
(Click on the picture to enlarge)
In the 'Install' page, select 'Create Unit' and click 'Next':
(Click on the picture to enlarge)
The interface code is generated now and is shown in the ASOCKETLib_TLB tab of the project.
To send SNMP traps using Delphi, you need to declare and create the following ActiveSocket objects:
From the Project Manager, open Unit1.bas and add the ASOCKETLib_TLB to the 'Uses' statement to refer to the ActiveSocket library:
(Click on the picture to enlarge)
In the 'private' or 'public' section, declare the following objects:
objSnmpTrapManager : ISnmpTrapManager; objSnmpTrap : ISnmpTrap; objSnmpObject : ISnmpObject;
You can now create the objects, for instance in the 'FormCreate' function:
objSnmpTrapManager := TSnmpTrapManager.Create(Form1).DefaultInterface; objSnmpTrap := TSnmpTrap.Create(Form1).DefaultInterface; objSnmpObject := TSnmpObject.Create(Form1).DefaultInterface;
When the required SNMP objects are created, you can implement the code to send a SNMP trap:
procedure TFormSnmpTrap.ButtonSendClick(Sender: TObject);
var objSnmpTrap : ISnmpTrap;
var objSnmpObject : ISnmpObject;
var vtVar : OleVariant;
begin
{ Initialize Trap manager and set SNMP version to v2c }
objSnmpTrapManager.Initialize ();
objSnmpTrapManager.ProtocolVersion := 2;
{ Create a SnmpTrap and SnmpObject }
objSnmpTrap := TSnmpTrap.Create ( Application ).DefaultInterface;
objSnmpObject := TSnmpObject.Create ( Application ).DefaultInterface;
objSnmpTrap.Clear ();
objSnmpObject.Clear ();
{ Set the values of the data to be sent with the trap }
objSnmpObject.Value := EditValue.Text;
objSnmpObject.OID := EditOID.Text;
objSnmpObject.type_ := GetValueTypeID ();
vtVar := objSnmpObject;
{ Set the trap properties and add the data }
objSnmpTrap.Host := EditAgent.Text;
objSnmpTrap.Port := StrToInt ( EditPort.Text );
objSnmpTrap.Community := EditCommunity.Text;
objSnmpTrap.AddObject ( vtVar );
vtVar := objSnmpTrap;
if ( objSnmpTrapManager.LastError = 0 ) then objSnmpTrapManager.Send( vtVar );
end;
You can download the complete sample on our ftp site ftp.activexperts-labs.com/samples/network-component. There are many other working ActiveSocket scripts on our site and shipped with the product.