protected override int RawWrite(byte[] buffer, int offset, int count)
{
try
{
if (isAsync)
{
if (currentTask != null)
currentTask.Wait();
currentTask = new Task(() =>
{
int rv = socket.Send(buffer, offset, count, SocketFlags.None);
eof = rv == 0;
});
currentTask.Start();
return count;
}
else
{
int rv = socket.Send(buffer, offset, count, SocketFlags.None);
eof = rv == 0;
return rv;
}
}
catch (System.Exception e)
{
PhpException.Throw(PhpError.Warning, ErrResources.stream_socket_error, e.Message);
return 0;
}
}