PowerTCP Mail for .NET
SegmentEventArgs Class
Members  Example  See Also  Send comments on this topic.
Dart.PowerTCP.Mail Namespace : SegmentEventArgs Class




Provides data for any event where data is sent or received.

Object Model

SegmentEventArgs ClassSegment Class

Syntax

Visual Basic (Declaration) 
Public Class SegmentEventArgs 
   Inherits System.EventArgs
Visual Basic (Usage)Copy Code
Dim instance As SegmentEventArgs
C# 
public class SegmentEventArgs : System.EventArgs 
Managed Extensions for C++ 
public __gc class SegmentEventArgs : public System.EventArgs 
C++/CLI 
public ref class SegmentEventArgs : public System.EventArgs 

Example

The following example demonstrates asynchronous receiving and sending of data.
Visual BasicCopy Code
Private Sub AsynchTcpDemo()

   ' Attempt to connect to an echo port.
   Try
      Tcp1.Connect("myserver", 7)
   Catch ex As Exception
      Return
   End Try

   ' Send data, since we are connected to an echo port, the same data should be returned.
   ' The following code demonstrates asynchronously sending data. When data has been sent
   ' the EndSend event will be raised.

   Dim buffer() As Byte = System.Text.Encoding.Default.GetBytes("a")
   Tcp1.BeginSend(buffer, 0, buffer.Length, Net.Sockets.SocketFlags.None, Nothing)
End Sub

Private Sub Tcp1_EndSend(ByVal sender As Object, ByVal e As Dart.PowerTCP.SegmentEventArgs) Handles Tcp1.EndSend
   ' Check for exception
   If e.Exception Is Nothing Then

      ' Send is complete. Display info about the data sent.
      Debug.WriteLine("Byte count sent: " + e.Segment.Count)
      Debug.WriteLine("Data sent: " + e.Segment.ToString())
      
      Dim buffer(Tcp1.ReceiveBufferSize) As Byte

      ' Receive the data. The EndReceive event will be raised upon completion.
      Tcp1.BeginReceive(buffer, 0, buffer.Length, Net.Sockets.SocketFlags.None, Nothing)
    
    End If
End Sub

Private Sub Tcp1_EndReceive(ByVal sender As Object, ByVal e As Dart.PowerTCP.SegmentEventArgs) Handles Tcp1.EndReceive
   ' Check for exception
   If e.Exception Is Nothing Then

      ' Receive is complete. Display info about the data sent.
      Debug.WriteLine("Byte count received: " + e.Segment.Count)
      Debug.WriteLine("Data received: " + e.Segment.ToString())

      ' Close the connection
      Tcp1.Close()
    End If
End Sub
C#Copy Code
private void AsynchTcpDemo()
{
    // Attempt to connect to an echo port.
    try
    {
        tcp1.Connect("myserver", 7);
    }
    catch(Exception ex)
    {return;}

    // Send data, since we are connected to an echo port, the same data should be returned.
    // The following code demonstrates asynchronously sending data. When data has been sent
    // the EndSend event will be raised.

    byte[] buffer = System.Text.Encoding.Default.GetBytes("a");
    tcp1.BeginSend(buffer, 0, buffer.Length, System.Net.Sockets.SocketFlags.None, null);
}

private void tcp1_EndSend(object sender, Dart.PowerTCP.SegmentEventArgs e)
{
    // Check for exception
    if(e.Exception == null)
    {
        // Send is complete. Display info about the data sent.
        Debug.WriteLine("Byte count sent: " + e.Segment.Count);
        Debug.WriteLine("Data sent: " + e.Segment.ToString());
                

        byte[] buffer = new byte[tcp1.ReceiveBufferSize];
                    
        // Receive the data. The EndReceive event will be raised upon completion.
        tcp1.BeginReceive(buffer, 0, buffer.Length, System.Net.Sockets.SocketFlags.None, null);
    }
}

private void tcp1_EndReceive(object sender, Dart.PowerTCP.SegmentEventArgs e)
{
    // Check for exception
    if(e.Exception == null)
    {
        // Receive is complete. Display info about the data sent.
        Debug.WriteLine("Byte count received: " + e.Segment.Count);
        Debug.WriteLine("Data received: " + e.Segment.ToString());

        // Close the connection
        tcp1.Close();
    }
}

Remarks

A SegmentEventArgs object is passed as a parameter to all events that report the transfer of data. This object contains a Segment object that references the data sent/received.

If your code causes an exception, it would be returned to the handling event without you seeing it. To preclude such a condition, you should ALWAYS use a try/ catch block around your event-handling code.

Inheritance Hierarchy

System.Object
   System.EventArgs
      Dart.PowerTCP.Mail.SegmentEventArgs

Requirements

Target Platforms: Microsoft .NET Framework 2.0

See Also

Documentation Version 3.2
© 2010 Dart Communications. All Rights Reserved.