Raised when the Tcp.BeginSend request completes.
Syntax
| Visual Basic (Usage) | Copy Code |
|---|
Dim instance As Tcp
Dim handler As SegmentEventHandler
AddHandler instance.EndSend, handler |
Event Data
The event handler receives an argument of type SegmentEventArgs containing data related to this event. The following SegmentEventArgs properties provide information specific to this event.
| Property | Description |
|---|
| Exception | Gets any exception which occurred during the asynchronous operation. |
| Segment | The Segment object referencing the data that was sent or received. |
| State | Gets the object that was included as part of the associated method call. |
Example
The following example demonstrates asynchronous receiving and sending of data.
| Visual Basic | Copy 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
Requirements
Target Platforms: Microsoft .NET Framework 2.0
See Also