PowerTCP Sockets for .NET

from $349.00
Available Platforms

Product Release History for PowerTCP Sockets for .NET

The following is a list of public releases for all components shipped with PowerTCP Sockets for .NET (Latest Release 2023-3-2023)


PowerTCP Sockets for .NET

Current Version: Released: 2023-3-21

Dart Communications is pleased to announce the release of PowerTCP Sockets for .NET 6.1.


Changes in this release:

  • Licensing has been refactored. Please review documentation here.
  • Support for .NET Framework 3.5 has been dropped and a minimum of .NET Framework 4.5 is now required. (Please contact sales@dart.com if you require an assembly for a previous version of .NET Framework.)
  • Improved Visual Studio Integration.
  • Full support for .NET 7.   Released: 2020-12-16


Product fixes in this release:

  • Fixed a minor compatibility issue so that Dart.Sockets.Standard.dll can be used with .NET 5.0.   Released: 2019-06-17


Product fixes in this release:

  • Fixed an issue in the .NET Standard assembly that resulted in string resources not being available when certain exceptions occurred. (1075)
  • Fixed an issue that resulted in .NET Standard assemblies being unusable in newer .NET Core preview releases.
  • Fixed an issue that could result in a hard crash when connecting to an closed port when using ConnectTaskAsync. (1078)    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 operation 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


    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)