ARTICLE AD BOX
I'm reasonably new to C#, I am using Microsoft Visual Studio Professional 2022. I have a function:
static bool sblnSendPacket(byte[] arybytPacket) { const string cstrServer = "localhost"; const string cstrFName = "sblnSendPacket"; bool blnRC = false; if (arybytPacket == null || arybytPacket.Length == 0) { Log.Info($"{cstrFName} nothing to send!"); return blnRC; } if (ssckBMLFS != null) { ssckBMLFS.Close(); } IPHostEntry ipHEServer = Dns.GetHostEntry(cstrServer); if (ipHEServer == null || ipHEServer.AddressList == null || ipHEServer.AddressList.Length < 2) { Log.Info($"{cstrFName} addresslist is empty!"); return blnRC; } IPAddress ipServer = ipHEServer.AddressList[1]; IPEndPoint ipepServer = new IPEndPoint (ipServer, mcintPortRequests); if (ipepServer == null) { Log.Info($"{cstrFName} cannot connect to {ipServer}!"); return blnRC; } if (ssckBMLFS != null && ssckBMLFS.Connected == true) { ssckBMLFS.Close(); } ssckBMLFS = new Socket(ipepServer.AddressFamily , SocketType.Stream , ProtocolType.Tcp); if (ssckBMLFS == null) { Log.Info($"{cstrFName} failed to create socket!"); return blnRC; } ssckBMLFS.Connect(ipepServer); if (ssckBMLFS.Connected != true) { Log.Info($"{cstrFName} cannot connect!"); return blnRC; } //Install handler to receive response SocketAsyncEventArgs objRxEvntArgs = new SocketAsyncEventArgs(); byte[] arybytRX = new byte[1024]; if (arybytRX == null) { Log.Info($"{cstrFName} couldn't received data!"); return blnRC; } //Start waiting until form has been completed Array.Clear(arybytRX); objRxEvntArgs.SetBuffer(arybytRX, 0, arybytRX.Length); objRxEvntArgs.Completed += sReceive; ssckBMLFS.ReceiveAsync(objRxEvntArgs); //Send initial request if (ssckBMLFS.Send(arybytPacket) > 0) { string strSent = System.Text.Encoding.UTF8 .GetString(arybytPacket); Log.Info($"{cstrFName} \"{strSent}\"!"); blnRC = true; } return blnRC; }I need to implement the above as an asynchronous task in c#, can anyone help?
