
| 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 | |
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(); } } | |
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.
System.Object
System.EventArgs
Dart.PowerTCP.Mail.SegmentEventArgs
Target Platforms: Microsoft .NET Framework 2.0