i need getting some advices, which method is better for creating an async tcpClient connection. My application opens tcpClient,writing a message and waits to read an answer. Method 1, i have create an async task for all tcpClient function.
await Task.Run(() =>
{
using (var client = new TcpClient(terminalIP, terminalPort))
using (var stream = client.GetStream())
{
var message = "my message";
var data = Encoding.ASCII.GetBytes(string.Format(message);
stream.Write(data, 0, data.Length);
var readingByte = new byte[256];
var sessionBytesRead = stream.Read(readingByte, 0, readingByte.Length);
var sessionTxt = Encoding.ASCII.GetString(readingByte, 0, sessionBytesRead);
}
});
Method 2, i use async only for open,write and read
using (var client = new TcpClient())
{
await client.ConnectAsync(terminalIP, terminalPort);
using (var stream = client.GetStream())
{
var message = "my message";
var data = Encoding.ASCII.GetBytes(message);
await stream.WriteAsync(data, 0, data.Length);
var readingByte = new byte[256];
var sessionBytesRead = await stream.ReadAsync(readingByte, 0, readingByte.Length);
var sessionTxt = Encoding.ASCII.GetString(readingByte, 0, sessionBytesRead);
}
}
Which method is better and why? Also if there is any other more efficient way, please let me know.