У меня возникли проблемы с тем, чтобы заставить sslstream работать с отправкой нескольких сообщений друг за другом.
Как я вызываю своего клиента для отправки данных
client.Send(objectOne);
client.Send(objectTwo);
сообщение об ошибке, которое я получаю:
The BeginWrite method cannot be called when another write operation is pending
Я пробовал разные решения, чтобы заставить это работать, но ни одно из них не заставляет его работать.
Базовая функция использует ожидание, и эта функция вызывается
// client send
public void Send(object data)
{
byte[] sendData = SerializationHelper.Serialize(data);
base.Send(sendData);
}
// base send
protected async void Send(byte[] data)
{
await stream.WriteAsync(data, 0, data.Length);
}
Базовая функция возвращает задачу и использует await в клиентском методе.
// client send
public async void Send(object data)
{
byte[] sendData = SerializationHelper.Serialize(data);
await base.Send(sendData);
}
// base send
protected async Task Send(byte[] data)
{
await stream.WriteAsync(data, 0, data.Length);
}
я все еще получаю ту же ошибку, кто-нибудь знает, как заставить это работать?