Enhances .NET with classes for DNS, servers and connection management.  Includes TLS/SSL security!
Product Release History
The following is a list of public releases for all components shipped with PowerTCP Sockets for .NET (Latest Release 2018-05-01)
PowerTCP Sockets for .NET
Current Version:    Released: 2018-04-30
  • Added support for .NET Standard 2.0 and .NET Core 2.0
  • New .NET Core 2.0 sample projects, referencing the Dart.Sockets.Standard dll
  • Updated trial license operation for use on .NET Standard-compatible platforms Details regarding trial oepration for Dart.Sockets.Standard.dll can be found in the Licensing and Trial Operation topic in the included help documentation    Released: 2017-03-08
  • Visual Studio 2017 compatibility.    Released: 2016-10-18
Product fixes in this release:
  • An issue where requesting less bytes than what is available when reading asynchronously and using ssl could potentially result in hangs until another socket operation is performed has been resolved.  (692)
  • ClientSecurity.TargetHost will now use Session.RemoteEndPoint.HostNameOrAddress if TargetHost is not populated per current documentation.  (712)
  • IPv6 Ping reply addresses are now reported correctly.  (950)    Released: 2014-12-05
Product fixes in this release:
  • An issue where the server component would intermittently fail to post another pending accept if a failure occurred during a previous accept has been resolved.  (593)    Released: 2014-06-05
  • Support for IPV6 address resolution added to the DNS component.
  • Added awaitable read,write, and connect method overloads to the TCP and UDP classes. Developers must use the Dart.Sockets.45 dll in order to take advantage of this functionality.
  • Added a ConnectTimeout property to the TCP Session class to provide a time out for pending connections.
  • Improved support for CAS level 2 applications in medium trust environments.    Released: 2012-10-26
  • PowerTCP Sockets for .NET has been updated for Visual Studio 2012 integration and Windows 8 compatibility.
  • Trial licensing operation updated.
  • Changed serialization to use simple partial name serialization to improve cross-version compatibility.
Product fixes in this release:
  • A more informative exception is now thrown when AuthenticateAsServer is called and the connection is aborted before authentication can succeed.  (5411)
  • Addressed a globalization issue that prevented correct operation for systems using the following language cultures: Azeri (az), Azeri-Latin (az-Latn), Azeri-Latin-Azerbaijan (az-Latn-AZ), Turkish (tr), Turkish-Turkey (tr-TR).  (TFS31)    Released: 2012-07-12
Product fixes in this release:
  • Fixed a licensing issue with web service applications.
  • Updated the title bar of licensing messages to not indicate a product is in trial when it is licensed.    Released: 2012-06-27
  • Updated trial operation behavior and removed obstacle to using product in .NET Framework 4.5.    Released: 2012-04-24
Product fixes in this release:
  • Fixed memory leak in Server component.  (5595)    Released: 2011-03-03
  • The Mx Class has been replaced with a Dns component. In addition to performing Mx record lookups, the component performs domain name and IP address lookups. Features include the ability to specify the local endpoint to bind to, as well as the DNS server to use.
  • Many custom Start delegates such as TcpThreadStart and UdpThreadStart have been replaced with the .NET Framework standard WaitCallback delegate. This generally means that callback functions no longer include the calling component as a parameter (this is true even for custom delegates that were not replaced).
  • The Connect method was updated to take the new TcpSession object as a parameter. TcpSession is a serializable object that facilitates the saving of session settings.
  • The AuthenticateAsClient and AuthenticateAsServer methods were updated to take the new ClientSecurity and ServerSecurity objects as parameters, respectively. These two objects are serializable, facilitating the saving of security sessions.
  • The ReadToX functions (ReadtoDelimiter, ReadToCount, ReadToEnd) were updated to throw the new DataException when an error condition occurs. DataException includes a DataRead field which provides the data read prior to the exception.
  • Several samples were updated with "model" classes, to fall more in line with the Model-View-Controller (MVC) design philosophy. For more on MVC, see the "MVC Design in Applications" page of the help file.
Product fixes in this release:
  • Addressed a memory leak with the ReceiveAsync call.  (5396)
  • The ConnectionStateChanged event and the ConnectionState property now indicate a closed state when the remote host forcibly closes a connection.  (5401)
  • Tcp.Close no longer causes a ConnectionReset exception.  (5406)    Released: 2011-01-07
  • Dart Communications is pleased to announce the release of PowerTCP Sockets for .NET 4.3. Some of the features include:

    • Model-View-Controller design uses fewer resources, is more flexible, and produces code that is easier to maintain
    • Improved Use of .NET Features including generics and IPv6
    • SSL support for secure communications
    • SOCKS4, SOCKS5, HttpConnect proxy with design editor support
    • Multithreaded Server component for sophisticated server apps using any TCP-based protocol
    • Dedicate a worker thread to each connection, or
    • Use asynchronous read calls utilizing IO completion threads
    • UDP builds on inherent Framework capabilities
    • Perform MX Record look-ups
    • Ping includes a broadcasting option
    • Ping without the need of admin permissions using system dlls
    • Trace routes to discover bottlenecks
    • Support for Windows applications, services and ASP.NET web applications
    • Many sample projects for C#, VB.NET, C++/CLI, including ASP.NET
    • Comprehensive MS Help 2.0 and Help Viewer 1.0 integrated documentation
    • Stand-alone and online documentation also provided
    • NET Framework 4 Client Profile compatible
    • 64-bit OS support

    Learn more about PowerTCP Sockets for .NET 4.3 and download a Free Trial >
    Learn more about PowerTCP 4 technology improvements and upcoming product plans >

  • Tips for Transitioning to Version 4

    This list outlines the coding changes needed when upgrading to version 4. For more on the benefits of the new model, please see PowerTCP 4.

    No more Async methods
    Previous versions of PowerTCP and PowerSNMP implemented an event-driven model for asynchronous use. In addition to a synchronous method, each operation had an asynchronous "BeginXXX" method and corresponding "EndXXX" event. For example, to receive data asynchronously using the Tcp component, the developer called BeginReceive and waited for the EndReceive event to fire with data. In the meantime, other code was free to execute.

    In the new model, asynchronous methods have been eliminated. Instead, the developer uses one or more synchronous methods (for example, "Receive") within a straight blocking function, and then passes a delegate referring to this function to the component's Start method. The Start method then executes the function on its own worker thread.

    Marshaling data back to the UI thread
    It is often necessary to pass information from a worker thread to an element on the UI thread. The new model includes Marshal functions to simplify these cross-thread operations. Each Marshal overload corresponds to an event handler that executes on the UI thread and provides access to data passed using the Marshal method.

    No more "pseudo-blocking"
    Methods in the new model are now true-blocking calls. In previous versions, methods were "pseudo-blocking," meaning that events could be raised while the call blocked. With the new model, the UI is blocked if a method is called from within the UI thread. The Start method should therefore be used in UI environments so that events are raised.

    Some components, such as Ping, make use of child Slave objects to perform blocking operations. The parent component defines events and includes properties that apply to all slaves.

    Use of IPEndPoints
    Many methods in the current model include overloads that take IPEndPoint parameters, to facilitate IPv6 use. A new IPEndPoint derived class provides several overloads for easy IPEndPoint creation, including automatic hostname resolution.    Released: 2008-01-30
Product fixes in this release:
  • Fixed problem with CryptDecrypt sample.    Released: 2008-01-16
  • New Tcp.WaitFor method for continuous receiving of data until a token string (or one of several token strings) is found.
  • New Dns.Servers collection for specifying multiple possible DNS servers to try.
  • Sockets now supports 64 bit environments.
  • Ping and TraceRoute now offer greater time precision.
  • An Abort method has been added to Ping.
  • Server.Listen has a new overload with an IPEndPoint parameter.
Product fixes in this release:
  • SegmentedStream.Read overloads with a "found" parameter now have EndRead method counterparts for examining the value of "found."  (2931)
  • The connection is no longer aborted in VS.NET 2005 after a Receive timeout.  (4146)
  • Ping results no longer contain an extra 40 bytes of null data.  (4232)    Released: 2006-08-11
  • Sockets for .NET now supports 64 bit environments.
  • A new "Ping.BeginSendIcmp" method has been added
  • A new "Server.MaxThreads" property has been added
Product fixes in this release:
  • Ping results are now accurate When multiple instances work simultaneously  (3172, 3646)    Released: 2005-11-02
Product fixes in this release:
  • Trace event no longer fires when we receive the empty receive event at end of connection
  • Fixed issue where Server.Connection event would fire and cause "Object not set" exception
  • Added ConnectedChangedEx event to correct issue with ConnectedChanged event firing with incorrect 'Sender' parameter
  • Corrected issue in Server component where socket would remain in use until client and server apps are closed
  • Corrected problem where Tcp connection would not go away if the network connection was closed
  • Added support for multiple token search in SegmentedStream.Read
  • Corrected Segmented stream read errors
  • Fixed memory leak when creating Tcp objects
  • Fixed issues where Tcp.ConnectTimeout would not function as expected
  • Addressed issue where Socks v5 user authentication would fail
  • Corrected error where setting Udp.MulticastInterface resulted in optionValue exception
  • Obsoleted ConnectedChanged event    Released: 2003-11-14
  • This version is a maintenance update. Samples have also been revamped and now include enahnced server demonstrations, along with all the ASP.NET samples having virtual directories created during installation
Product fixes in this release:
  • ConnectTimeout now available to all components.  (1462)
  • MaxIdleTime removed from server. Not required.  (1666)
  • SegmentedStream has a new overload with a string parameter.  (1891)
  • Adjusted trail operation in ASP.NET.  (2121)
  • Addressed a licensing problem with ASP.NET 1.0 and other 3rd party products.  (2146)    Released: 2003-05-15
Product fixes in this release:
  • Added ConnectTimeout property
  • PipeStream.Read now immediately returns when data is in the buffer
  • Changed licensing exception message to be more accurate
  • Added SynchronizingObject property
  • Fixed incorrect license error when using Editor Forms
  • Server.MaxIdleTime removed as not needed. Tcp.ReceiveTimeout should be used instead
  • Made modifications to the Server Editor Form
  • Fixed a problem where TCP was receiving in specific circumstances    Released: 2002-10-18
  • The latest version of PowerTCP Sockets for .NET adds more samples and enhances multi-threading support. Because use of multi-threading is expected to be far more common in .NET, and components will probably be used in conjunction with controls that exist on the primary User Interface (UI) thread, all the components included as part of this product now include a SynchronizeObject property. This property automatically controls thread marshalling between worker threads and the main UI thread. What this means is that if a component is returning from a BeginXXX method that triggers an EndXXX Event, setting SynchronizeObject to the parent form will allow code that exists in the EndXXX Event to properly use (marshall data) controls that exist on the parent form. Also as part of this version, a new sample is included. The POP Server sample demonstrates how to use the Server component to build a custom POP Server in either VB.NET or C#
Product fixes in this release:
  • Namespace changed to Dart.PowerTCP.SslSockets