public void SendPiece(int pieceId, int begin, int length, IO.Stream istream, PeerPieceCallback pieceSentCallback) { try { if (socket.Connected) { this.asyncInProgress = true; peerProtocol.SendPiece(this.netStream, pieceId, begin, length, istream, new PeerFinishedPieceTransfer(OnWriteFinished), (object)(new object[] { pieceId, begin, length, pieceSentCallback })); this.numBytesUploaded += length; } } catch (System.Exception e) { Config.LogException(e); this.Disconnect(); } }