var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var args = new SocketAsyncEventArgs(); args.SetBuffer(Encoding.ASCII.GetBytes("Hello, server!")); args.Completed += (sender, e) => { if (e.SocketError != SocketError.Success) Console.WriteLine($"Error sending data: {e.SocketError}"); else Console.WriteLine("Data sent successfully."); }; socket.Connect(IPAddress.Parse("127.0.0.1"), 1234); socket.SendAsync(args);
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var args = new SocketAsyncEventArgs(); args.Completed += (sender, e) => { if (e.SocketError != SocketError.Success) Console.WriteLine($"Error receiving data: {e.SocketError}"); else { var receivedData = Encoding.ASCII.GetString(e.Buffer, e.Offset, e.BytesTransferred); Console.WriteLine($"Received data: {receivedData}"); } }; socket.Connect(IPAddress.Parse("127.0.0.1"), 1234); socket.ReceiveAsync(args);This code creates a TCP socket and attempts to receive data from an endpoint at IP address 127.0.0.1 and port 1234. The ReceiveAsync method is used to perform the operation asynchronously, and a callback is provided to handle the completion of the operation. Upon successful completion, the received data is converted to a string and printed to the console. In conclusion, SocketAsyncEventArgs is a class in the System.Net.Sockets package library that enables asynchronous socket operations for TCP and UDP sockets. The above examples demonstrate how it can be used to send and receive data asynchronously.