private static void OnSendedData(IAsyncResult a)
{
object[] param = (object[])a.AsyncState;
BufferedSocket socket = (BufferedSocket)param[0];
MemoryStream strm = (MemoryStream)param[1];
object tag = param[2];
SocketCallBack callBack = (SocketCallBack)param[3];
try{
int countSended = socket.Socket.EndSend(a);
// Send next data block
if(strm.Position < strm.Length){
SendDataBlock(socket,strm,tag,callBack);
}
// We sended all data
else{
callBack(SocketCallBackResult.Ok,strm.Position,null,tag);
}
}
catch(Exception x){
callBack(SocketCallBackResult.Exception,strm.Position,x,tag);
}
}