ActiveSocket

 Product Overview

 Installation

 Code Snippets

 Online Samples

 Support

 Manual (.htm)

 Release Notes

 Download (.exe)


Purchase

 Licensing

 Pricing

 Order now


  Download ActiveSocket Network Communications Toolkit 4.1  (.exe file)
  Download Manual  (.htm file)

Produkt specificering

Tilføjelse af netværks kommunikation til en applikation er aldrig simpel. Det kræver special viden som ikke alle programmører er i bessiddelse af. Igennem flere år, har VBScript, Visual Basic og Visual C++ udviklere anvendt det fleksible og kraftfulde ActiveSocket Network Communication Toolkit fra ActiveXperts Software. Idag anvender, .NET udviklere også denne komponent.

Med ActiveSocket kan du kommunikere via TCP/IP. ActiveSocket giver dig et "easy-to-use" scripting interface til TCP/IP kommunikation. Ved at bruge ActiveSocket, kan du hurtig tilføje netværks features.

Brug ActiveSocket til at tilføje flg. IP protokoller i dine applikationer eller scripts:
  • Icmp object
  • Http/Https object
  • FtpServer/FtpFile object
  • DnsServer/DnsRecord object
  • Ntp object
  • Ssh object
  • Rsh object
  • SnmpManager object
  • SnmpTrapManager object
  • SnmpMibBrowser object
  • Tcp object
  • Udp object
  • IPtoCountry object
  • Wake-On-LAN object;
ActiveSocket er bygget oven på Microsoft Winsock modulerne; I forhold til andre på markedet, bruger den Microsoft Winsock modulerne, den overskriver dem ikke!

Performance af modulet er i sær klasse pga. multi-threaded arkitektur.

ActiveSocket understøtter flg. Operativ Systemer:
  • Windows 2008;
  • Windows Vista;
  • Windows 2003;
  • Windows XP;
  • Windows 2000.
ActiveSocket er en COM-Komponent, som kan anvendes i et Windows miljø som har support for Visual Basic- samt Java scripting. ActiveSocket kan bruges af flg. udviklingssprog og scripting sprog:
  • Visual Basic 5.x eller nyere- Windows based applications;
  • Visual Basic .NET - Windows .NET based application;
  • ASP 2.x - Web sites baseret på Active Server Pages (server-side scripting);
  • ASP .NET - Web site baseret på Active Server Pages og .NET Framework;
  • Visual C++ 5.x eller nyere- Windows based applications;
  • Visual C# .NET - Windows .NET based applications;
  • VBScript - Windows based scripts;
  • HTML - Client scripts i HTML.


    Arkitektur

Windows indeholder routiner for netværk og Internet kommunikation. Disse routiner findes i DLLs som kaldes Winsock (for WINdows SOCKets). ActiveSocket er bygget oven på Winsock. Den anvender Winsock modulerne, den overskriver dem ikke, og den installer heller ikke andre Winsock moduler.

Kernen af ActiveSocket består af en fil: ASocket.dll.
Dett er COM/OLE modulet,og giver flg. understøttelse: Icmp object, Http object, RSh object, Ntp object, Snmp object, SnmpTrapOut object, SnmpTrapIn object, Wake-On-LAN (WOL) object and Socket object.





Installation

    The ActiveSocket components

ActiveSocket pakken består af 3 komponenter:
  1. ActiveSocket COM component - interface til VB programmer;
  2. ActiveSocket Hjælpe filer - dokumentation;
  3. ActiveSocket sample filer- eksempler.


    Installation på en single computer

Kør AComport.exe Setup programmet. InstallShield wizard vil guide dig gennem resten af installationen.
Hvis du vælger at benytte ActiveSocket COM komponenten, kan installations programmet lave registrering af COM komponenten for dig. Det vil også være muligt og lave en manuel registrering.


    Installation på flere computere

Da installationen af Core komponenten er meget simpel, kan det være at du vil gøre dette manuelt, eller via dit eget distubutions software.

Hvis du vil registrere COM komponenten manuelt på andre maskiner, skal du gøre flg.:
  • Kopier ACtivesok.dll (Activesocket COM komponenten) til de nye maskiner;
  • Registrer COM komponenten ved at køre flg. kommando: REGSVR32 <dest-location>\file



 

Code Snippets





 ' Constants: Some Error codes
 Const asERR_SUCCESS=0

 Set icmpObj = CreateObject("ActiveXperts.Icmp")

 Do
   strHost = inputbox( "Enter host", "Input", "192.168.1.10" )
 Loop until strHost <> ""

 icmpObj.Ping strHost, 2000 ' Timeout 2000 ms
 If( icmpObj.LastError = 0 ) Then
   WScript.Echo "Duration:" & icmpObj.LastDuration & "ms"
 Else
   Script.Echo "Error " & icmpObj.LastError
 End If

 WScript.Echo "Ready."


					
 

 Module IcmpDemo
  Sub Main()
   Dim objIcmp As ASOCKETLib.IcmpClass = New ASOCKETLib.Icmp()
   Dim objConstants As Constants = New Constants()
   Dim i As System.Int16
   Dim strHost As String = "www.activexperts.com"
   For i = 1 To 4
    Console.WriteLine("Pinging " & strHost & " ...")
    objIcmp.Ping(strHost, 2000)
    If (objIcmp.LastError = objConstants.asERR_SUCCESS) Then
     Console.WriteLine("Reply from " & strHost )
     Console.WriteLine("Time="&objIcmp.LastDuration.ToString())
    Else
     Console.WriteLine("Error: "&objIcmp.LastError.ToString())
    End If
    System.Threading.Thread.Sleep(1000)
   Next

   Console.WriteLine("Ready.")
   System.Threading.Thread.Sleep(5000)
  End Sub
 End Module          
VBScript sample: Icmp Demo   Visual Basic .NET sample: Icmp Demo



  Const asERR_SUCCESS=0
  Set httpObj = CreateObject("ActiveXperts.Http")

  Do
    strUrl = inputbox( "Enter URL", "Input", "www.activexperts.com" )
  Loop until strUrl <> ""

  httpObj.Connect( strUrl )
  If( httpObj.LastError <> asERR_SUCCESS ) Then
    WScript.Echo "Error " & httpObj.LastError
  Else
    strData = httpObj.ReadData
    If( httpObj.LastError <> asERR_SUCCESS ) Then
      WScript.Echo "Error " & httpObj.LastError
    Else
      WScript.Echo strData
    End If
    httpObj.Disconnect
    WScript.Echo "Disconnect."
  End If
  WScript.Echo "Ready."

					
 

  HRESULT  hr;
  IHttp	   *pHttp;
  BSTR     bstrTemp

  CoInitialize( NULL );
  hr = CoCreateInstance( CLSID_Http, NULL, CLSCTX_INPROC_SERVER, 
                         IID_IHttp, (void**) &pHttp);

  pHttp->put_ProxyServer( _bstr_t( ( LPCSTR ) "proxy01" ) );
  pHttp->Connect( _bstr_t( "www.activexperts.com/about" ) );
  pHttp->get_LastError( &lLastError );
  if( lLastError != 0L )
    goto _End;
  pHttp->ReadData( &bstrTemp );
  pHttp->get_LastError( &lLastError );
  if( lLastError != 0L )
    goto _End;
  printf( "%ls\n", bstrTemp );
  SysFreeString( bstrTemp );
  pHttp->Disconnect();

  _End:
  printf( "Ready." );
VBScript sample: Http Demo   Visual C# .NET sample: Http Demo







  Public asObj As ASOCKETLib.Ntp

  Private Sub BTN_RETRIEVETIME_Click()
    asObj.GetTime (CB_TIMESERVERS.List(CB_TIMESERVERS.ListIndex))
    If (asObj.LastError = 0) Then
      TXT_RESULT = "SUCCESS"
      TXT_DATETIME = asObj.Year & "/" & _
	    asObj.Month & "/" & _
        asObj.Day & " " & _
        asObj.Hour & ":" & _
        asObj.Minute & ":" & _
        asObj.Second
      TXT_OFFSET = asObj.LocalOffsetSeconds
    Else
      TXT_RESULT = "ERROR #" & asObj.LastError
      TXT_DATETIME = "n/a"
      TXT_OFFSET = "n/a"
    End If
  End Sub

  Private Sub Form_Load()
    Set asObj = CreateObject("ActiveXperts.Ntp")
    CB_TIMESERVERS.AddItem ("fartein.ifi.uio.no")
    CB_TIMESERVERS.AddItem ("ntp0.coreng.com.au")
    CB_TIMESERVERS.AddItem ("ntp1.rnp.br")
    CB_TIMESERVERS.AddItem ("142.3.100.2")
    CB_TIMESERVERS.ListIndex = 0
  End Sub


					
 

  int main(int argc, char* argv[])
  {
    INtp     *pNtp = NULL;
    HRESULT   hr;
	LONG     lYear, lMonth, lDay, lHour, lMinute, lSecond;
	LONG     lLastError, lOffset;

    CoInitialize(NULL);     // Initialize COM
    hr = CoCreateInstance( CLSID_Ntp, NULL, CLSCTX_INPROC_SERVER, 
           IID_INtp, (void**) &pNtp );
    if( ! SUCCEEDED( hr ) ) {
      goto _EndMain;
    }
    pNtp->GetTime( _bstr_t( "fartein.ifi.uio.no" ) );
    pNtp->get_LastError( &lLastError );
    if( lLastError != asERR_SUCCESS )
      goto _EndMain;
    pNtp->get_Year( &lYear );
    pNtp->get_Month( &lMonth );
    pNtp->get_Day( &lDay );
    pNtp->get_Hour( &lHour );
    pNtp->get_Minute( &lMinute );
    pNtp->get_Second( &lSecond );
    pNtp->get_LocalOffsetSeconds( &lOffset );
    printf( "Date:%04d/%02d/%02d\n", lYear, lMonth, lDay );
    printf( "Time:%02d:%02d:%02d\n", lHour, lMinute, lSecond );
    printf( "Offset: %02d min and %02d sec\n", lOffset, lOffset%60 );

  _EndMain:
    if( pNtp != NULL ) {
      pNtp->Release();
      pNtp = NULL;
    }
    return 0;
  }
					
Visual Basic 6 sample: Ntp Demo   Visual C++ 6 sample: Ntp Demo







  Module RShDemo
   Sub Main()
    Dim objRSh As ASOCKETLib.RShClass = New ASOCKETLib.RSh()
    Dim objConstants As Constants = New Constants()

    objRSh.Clear()
    objRSh.Host = "192.168.1.10"
    objRSh.Command = "/bin/ls"
    objRSh.ScriptTimeOut = 5000
    Console.WriteLine("Running command...")
    objRSh.Run()
    Console.WriteLine(" Result:" & objRSh.LastError.ToString())
    If (objRSh.LastError = objConstants.asERR_SUCCESS) Then
      Console.WriteLine("StdErr:" & objRSh.StdErr)
      Console.WriteLine("StdOut:" & objRSh.StdOut)
    End If
    Console.WriteLine("Ready.")
   End Sub
  End Module

  
					
 

  using System; using ASOCKETLib; using ASOCKETConstants;
  namespace RShDemo
  {
   class RShDemo
   {
     [STAThread] static void Main(string[] args)
     {
       RSh	       objRSh = new RShClass();
       asConstants objConstants = new asConstants();
       objRSh.Clear();
       objRSh.Host = "192.168.1.10";
       objRSh.Command = "/bin/ls";
       objRSh.ScriptTimeOut = 5000;
       Console.WriteLine( "Running command..." );
       objRSh.Run();
       Console.WriteLine( "Result:" + objRSh.LastError.ToString() );
       if( objRSh.LastError == objConstants.asERR_SUCCESS )
       {
         Console.WriteLine( "StdErr:" + objRSh.StdErr );
         Console.WriteLine( "StdOut:" + objRSh.StdOut );
       }
       Console.WriteLine( "Ready." );
     }
   }
  }
					
Visual Basic .NET sample: RSH Demo   Visual C# .NET sample: RSH Demo



  Const asERR_SUCCESS=0

  Set objSnmp = CreateObject( "ActiveXperts.Snmp" )
  Do
    strHostName = inputbox( "Enter agent (host)", "Input" )
  Loop until strHostName <> ""
  objSnmp.Open strHostName, "public"
  If( objSnmp.LastError <> 0 ) Then
    WScript.Echo "Error " & objSnmp.LastError
  Else
    strOID = "system.sysName.0"
    If( objSnmp.LastError = asERR_SUCCESS ) Then
      Do
        strValue = objSnmp.Get( strOID )
        WScript.Echo strOID & " : "
        WScript.Echo " Value:" & strValue &  & vbCrLf
        WScript.Echo " Type:" & objSnmp.GetType() & vbCrLf

        strNextOID = objSnmp.GetNext( strOID )
        strOID = strNextOID
      Loop Until objSnmp.LastError <> 0
      objSnmp.Close()
      WScript.Echo "Closed."
    End If
  End If            
 

  Module SnmpDemo
  Sub Main()
    Dim objSnmp As ASOCKETLib.Snmp  = New ASOCKETLib.Snmp()
    Dim objConstants As Constants  = New Constants()
    Dim strAgent As String = "127.0.0.1"
    Dim strCommunity As String = "public"
    Dim strOID As String = "system.sysName.0"
    Dim strNextOID As String
    Dim strValue As String

    objSnmp.Open(strAgent, strCommunity)
    If (objSnmp.LastError = objConstants.asERR_SUCCESS) Then
      Do
        strValue = objSnmp.Get(strOID)
        Console.WriteLine(strOID + " : ")
        Console.WriteLine(" Value:" & strValue )
        Console.WriteLine(" Type:" & objSnmp.GetType() )
        strNextOID = objSnmp.GetNext(strOID)
        strOID = strNextOID
     Loop Until( objSnmp.LastError <> 0 )
     End If
     Console.WriteLine( "Ready." )
  End Sub
  End Module
					
VBScript: SNMP Walker Demo   Visual Basic .NET sample: SNMP Walker Demo



  Module SendTrap

  Sub Main()

    Dim snmpTrapOut As ASOCKETLib.SnmpTrapOut
    Dim objConst As Constants
    Dim strAgent As String
    Dim strCommunity As String

    strAgent = "localhost"
    strCommunity = "public"

    snmpTrapOut = New ASOCKETLib.SnmpTrapOut()
    objConst = New Constants()
    snmpTrapOut.Initialize()

    If (snmpTrapOut.LastError=objConst.asERR_SUCCESS) Then
      snmpTrapOut.AddTrap(".1.3.6.1.2.1.1.5.0", 
                          objConst.asASN_IPADDRESS, 
                          "10.0.0.1")
      snmpTrapOut.AddTrap(".1.3.6.1.2.1.1.5.1", 
                          objConst.asASN_OCTETSTRING, 
                         "One two three")
      snmpTrapOut.Send(strAgent, strCommunity)
      snmpTrapOut.Shutdown()
    End If

  End Sub

  End Module

  					
 

using System;
using ASOCKETLib;
using ASOCKETConstants;

namespace ReceiveTrap {
  class ReceiveTrap {
    [STAThread]
    static void Main(string[] args) {
      SnmpTrapIn      snmpTrapIn = new SnmpTrapInClass();
      asConstants     objConst = new asConstants();
      String          strCommunity = "public";
      System.Int32    i;

      snmpTrapIn.Initialize();
      if( snmpTrapIn.LastError == objConst.asERR_SUCCESS ) {
        snmpTrapIn.StartListening( strCommunity );
        if( snmpTrapIn.LastError == objConst.asERR_SUCCESS ) {
          for( i = 0; i < 30; i++ ) {
            snmpTrapIn.Sleep( 1000 );
            snmpTrapIn.GetFirstTrap( -1 );
            while( snmpTrapIn.LastError==objConst.asERR_SUCCESS ) {
              Console.WriteLine( snmpTrapIn.CurrentOID + ": " );
              Console.WriteLine( snmpTrapIn.CurrentValue );
              snmpTrapIn.GetNextTrap( -1 );
            }
         }
         snmpTrapIn.StopListening();
       }			
       snmpTrapIn.Shutdown();
    }
  }
}                   
Visual Basic .NET: Send SNMP traps   Visual C# .NET: Receive SNMP traps



  ' Constants: Connection states
  Const asCONN_DISCONNECTED=1
  Const asCONN_LISTENING=2
  Const asCONN_CONNECTED=3

  ' Constants: Error codes
  Const asERR_SUCCESS=0

  ' Constants: Protocols
  Const asPROTOCOL_RAW=1
  Const asPROTOCOL_TELNET=2

  ' Create a socket instance
  Set asObj = CreateObject("ActiveXperts.Socket")
  asObj.Protocol = asPROTOCOL_RAW

  ' Make a connection to port 1500 on remote server
  asObj.Connect "127.0.0.1", 1500
  WScript.Echo "Connect: result = " & asObj.LastError
  If asObj.LastError <> 0	 Then
    WScript.Echo "Error: " & asObj.LastError
  Else
    WScript.Echo "Connection established" & vbCrLf

    ' Send information to client

    str = "This is just a message"
    WScript.Echo "SendString: " & str
    asObj.SendString str, False

    str = "Quit"
    WScript.Echo "SendString: " & str
    asObj.SendString str, False
    asObj.Sleep 3000

    asObj.Disconnect ' And finally, disconnect
  End If 


					
 

  ' Constants: Connection states
  Const asCONN_DISCONNECTED=1
  Const asCONN_LISTENING=2
  Const asCONN_CONNECTED=3

  ' Constants: Error codes
  Const asERR_SUCCESS=0

  ' Constants: Protocols
  Const asPROTOCOL_RAW=1
  Const asPROTOCOL_TELNET=2

  ' Create a socket instance
  Set asObj = CreateObject("ActiveXperts.Socket")
  asObj.Protocol = asPROTOCOL_RAW

  asObj.StartListening 1500 ' Listen for incomingb request
  If asObj.LastError <> 0 Then
    WScript.Echo "Error " & asObj.LastError
  Else
    ' Wait for a connection on port 1500 on this machine now...
    WScript.Echo "Waiting for a connection..."
    Do while asObj.ConnectionState = asCONN_LISTENING
        asObj.Sleep 1000
    Loop
    If asObj.ConnectionState = asCONN_CONNECTED Then
      WScript.Echo "Connection established" & vbCrLf

      str = ""
      Do While asObj.ConnectionState = asCONN_CONNECTED and str <> "Quit"
        If asObj.HasData Then
          str = asObj.ReceiveString
          WScript.Echo "ReceiveString: " & str
        End If
        asObj.Sleep 100
      Loop

      asObj.Disconnect ' And finally, disconnect
    End If
  End If            
VBScript client/server sample: CLIENT.VBS   VBScript client/server sample: SERVER.VBS



  ' Constants: Connection states
  Const asCONN_DISCONNECTED=1
  Const asCONN_LISTENING=2
  Const asCONN_CONNECTED=3

' Constants: Some Error codes
  Const asERR_SUCCESS=0
  Const asERR_INVALIDPARAMETER=1
  Const asERR_CREATETHREADFAILED=2
  Const asERR_EVALUATIONEXPIRED=3
  Const asERR_INVALIDLICENSE=4

  ' Constants: Protocols
  Const asPROTOCOL_RAW=1
  Const asPROTOCOL_TELNET=2

  ' Create a socket instance
  Set asObj = CreateObject("ActiveXperts.Socket")
  asObj.Protocol = asPROTOCOL_TELNET

  ' Write some information to console
  WScript.Echo "ActiveSocket " & asObj.Version & " demo."
  WScript.Echo "Expiration date: " & asObj.ExpirationDate & vbCrLf

  ' Make a connection on port 80 to remote server
  asObj.Connect "www.activexperts.com", 80
  Wscript.Echo "Result: " & asObj.LastError
  If asObj.LastError <> 0 Then
    WScript.Echo "Error: " & asObj.LastError
  Else
    If asObj.ConnectionState = asCONN_CONNECTED Then
      WScript.Echo "Connection established" & vbCrLf
      strReceived = ""
      nCounter = nCounter + 1
	
      asObj.Sleep 1000	
      asObj.SendString "GET /activsocket/demopage/ HTTP/1.1", True
      asObj.SendString "Host: www.activexperts.com" & vbCrlf, True
	
      asObj.Sleep 1000
      If asObj.HasData Then
        strReceived = asObj.ReceiveString
	    WScript.Echo "RECV: " & strReceived
      End If 

      asObj.Sleep 1000
      asObj.Disconnect ' And finally, disconnect
    End If
  End If

					
 

  Module Module1
    Public m_objSocket As ASOCKETLib.SocketClass
    Public m_objConstants As Constants

    Private Sub ReadFromPort(ByVal TimeOut As System.Int32)
      Dim StartTime As System.Int32
      Dim strStringReceived As String
      Dim bSomethingRead As System.Boolean
      Dim lConnectionState As System.Int32

      StartTime = Environment.TickCount()

      Console.WriteLine("Attempting to receive data..." & vbCrLf)
      Do
        If(m_objSocket.ConnectionState <>
                   m_objConstants.asCONN_CONNECTED) Then
          Exit Do
        End If
        System.Threading.Thread.Sleep(200)
        strStringReceived = m_objSocket.ReceiveString()
        If (strStringReceived <> "") Then
          Console.WriteLine(strStringReceived & vbCrLf)
        End If
      Loop Until (Environment.TickCount() > StartTime + TimeOut)

    End Sub

    Sub Main()
        Dim strHost As String = "library.uah.edu"
        Dim strLogin As String = "guest"
        Dim strPassword As String = "guest"

        m_objSocket = New ASOCKETLib.Socket()
        m_objConstants = New Constants()

        m_objSocket.Protocol = m_objConstants.asPROTOCOL_TELNET
        m_objSocket.Connect(strHost, 23)
        If(m_objSocket.LastError=m_objConstants.asERR_SUCCESS)Then
            System.Threading.Thread.Sleep(5000)
            ReadFromPort(3000) ' Receive data for 3 seconds
            Console.WriteLine("Send: '" & strLogin & "'" & vbCrLf)
            m_objSocket.SendString(strLogin, True)
            ReadFromPort(3000) ' Receive data for 3 seconds
            Console.WriteLine("Send: '" & strPassword & "'" & vbCrLf)
            m_objSocket.SendString(strPassword, True)
            ReadFromPort(3000) ' Receive data for 3 seconds
            m_objSocket.Disconnect()
            Console.WriteLine("Disconnected by client." & vbCrLf)
        End If
    End Sub
  End Module        
VBScript sample: Telnet demo   Visual Basic .NET sample: Telnet demo





  Set wObj = CreateObject("ActiveXperts.WOL")

  wObj.WakeUp "00-10-4B-BA-7A-51"
  WScript.Echo "WakeUp: result = " & wObj.LastError

					
 

  Module WakeOnLanDemo
    Sub Main()
      Dim objWol As ASOCKETLib.WOLClass = New ASOCKETLib.WOL()
      Dim objConstants As Constants = New Constants()
      objWol.WakeUp("00-10-4B-BA-7A-51")
      Console.WriteLine( "Result: " & objWol.LastError.ToString() )
    End Sub
  End Module        
VBScript sample: Wake On LAN   Visual Basic .NET sample: Wake On LAN






©2009 ActiveXperts Software B.V. All rights reserved.  Contact Us | Terms of Use | Privacy Policy