В настоящее время я переношу библиотеку оборудования в .NET Core. Связь работает через TCP. У меня проблемы с методом «Socket.BeginReceive». MSDNкак получить данные из Socket в .NET Core?
Похоже, в .NET Core нет эквивалентного метода. Как я могу получить данные из TCP Socket?
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();
}
}
Там же [синхронный] (https://docs.microsoft.com/en-us/dotnet/core/api/system.net.sockets. socket # System_Net_Sockets_Socket_Receive_System_Byte ___) и [асинхронный] (https://docs.microsoft.com/en-us/dotnet/core/api/system.net.sockets.socket#System_Net_Sockets_Socket_ReceiveAsync_System_Net_Sockets_SocketAyncEventArgs_) версии Receive в .NET Core. –