Ich portiere derzeit eine Hardwarebibliothek nach .NET Core. Die Kommunikation funktioniert über TCP. Ich habe Probleme mit der 'Socket.BeginReceive'-Methode. MSDNWie bekomme ich Daten von einem Socket in .NET Core?
Es scheint, dass es keine äquivalente Methode in .NET Core gibt. Wie kann ich Daten von einem TCP-Socket empfangen?
private void InternalDataReceived(IAsyncResult ar)
{
int dataCount = 0;
byte[] buffer;
try
{
if (_client != null && _client.Client != null)
{
dataCount = _client.Client.EndReceive(ar);
}
if (dataCount > 0)
{
try
{
buffer = new byte[dataCount];
Array.Copy(_inBuffer, buffer, dataCount);
if (DataReceived != null)
{
DataReceived(buffer);
}
}
catch (Exception exc)
{
if (exc is System.Net.Sockets.SocketException)
{
Disconnect();
return;
}
}
_client.Client.BeginReceive(_inBuffer, 0, _inBuffer.Length, SocketFlags.None, InternalDataReceived, null);
}
}
catch
{
Disconnect();
}
}
Es gibt [Synchron] (https://docs.microsoft.com/en-us/dotnet/core/api/system.net.sockets. Socket # System_Net_Sockets_Socket_Receive_System_Byte ___) und [asynchrone] (https://docs.microsoft.com/en-us/dotnet/core/api/system.net.sockets.socket#System_Net_Sockets_Socket_ReceiveAsync_System_Net_Sockets_SocketAsyncEventArgs_) Versionen von Receive in .NET Core. –